[C] enregistrer résultat commande

Bonjour,

J'aimerai pouvoir enregistrer le resultat d'une commande en C/C++.
Comment puis-je faire ?

Merci
Configuration: Linux
Firefox 1.0.4

7 réponses

  1. Modérateur
    Salut,

    Peut être la fonction popen ?!
    1. Modérateur
      A moins qu'(il|elle) veuille enregistrer le retour d'une fonction, voire des données. On ne sait pas trop :-/
  2. Modérateur
    Salut,

    C'est pour ça que j'ai dit peut être ;-))
    1. Modérateur
      C'est vrai :-)
      En ce cas je fais une nouvelle proposition :-)

      fwrite()
  3. Modérateur
    Ou alors peut être juste une redirection de sortie avec le ">" dans le shell.
    1. Alors en fait je voudrais par exemple stocker le resultat de la commande "ls" dans une chaine de caractères (en C).

      ex:

      char tab[250] = (resultat de la commande "ls");
      1. Modérateur
        Aaah, popen() donc :-)
    2. Modérateur
      Re,

      Essaie (je n'ai pas testé)
      #include<stdio.h>
      int main()
      {
          FILE *fic;
          char *s[255];
      
          fic = popen("ls -l","r");
      
          while(!feof(fic)){
            fgets(s,255,fic);
            printf("%s",s);
          }
      
          pclose(fic);
          return 0;
      }
      --
      106485010510997108
      1. Modérateur
        Re,

        J'ai fait une petite erreur.
        Maintenant c'est testé
        #include<stdio.h>
        int main()
        {
            FILE *fic;
            char s[255];
        
            fic = popen("ls -l","r");
        
            while(!feof(fic)){
              fgets(s,255,fic);
              printf("%s",s);
            }
        
            pclose(fic);
            return 0;
        }