[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
    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;
    }

    1. 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. 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
        Ou alors peut être juste une redirection de sortie avec le ">" dans le shell.
        1. 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()
        2. 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 :-/