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