IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Récupérer la sortie standard d'un shell dans un programme C


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Récupérer la sortie standard d'un shell dans un programme C
    salut tout le monde

    j'execute un traitement bash et je voudrais récuperer la sortie standard de ce traitement : il s'agit d'un echo.
    Mon script est de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    printf("La chaine est %s\n",DIRWORK); 
       sprintf(commande, " %s","./test.sh");
       printf ("Commande est %s ",commande);
    if (!(pp = popen(commande, "r") ))
     {
       perror("popen");
       exit(1);
     }
     
    while (fgets(buf, sizeof buf, pp))
     {
       fputs(buf,stdout);
     
     }
       pclose(pp);
     
    strcpy(stdout,buf);
    Mais j'ai toujours une erreur au niveau de la ligne strcpy(stdout,buf) pendant l'exécution.

    S'il vous plait est ce quelqu'un pourrait m'aider c'est urgent
    sachant que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FILE *pp;
       char buf[256];
       char commande[1024];
       char *resultat;

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Récupérer la sortie standard d'un shell dans un programm
    Citation Envoyé par morganca
    Mais j'ai toujours une erreur au niveau de la ligne strcpy(stdout,buf) pendant l'exécution.
    Normal, ça n'a aucun sens. Tu veux faire quoi ? fwrite () ?
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    et tu veux dire quoi par fwrite

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    est ce que vous pouvez me fournir un exemple merci pour votre aide

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par morganca
    et tu veux dire quoi par fwrite
    C'est une fonction assez connue qui permet d'écrire un bloc de donnée dans un fichier...

    http://dpobel.free.fr/man/html/affiche_man.php/1090/man/fwrite/

    Je recommande ce site comme source de doc... Le petit moteur de recherche est parfait...
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par morganca
    est ce que vous pouvez me fournir un exemple merci pour votre aide
    Ben tiens, tout ce qui évite de trop réfléchir, qui permet de recopier bêtement sans se poser de question...

    Vive le CPE !

    Zut, je suis en retard d'une guerre...
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. récuperer la sortie d'une commande shell dans un programme C
    Par Biosox dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 21/08/2009, 12h55
  2. Réponses: 1
    Dernier message: 11/06/2008, 16h02
  3. Réponses: 5
    Dernier message: 16/03/2007, 13h16
  4. [WM5]Récupérer la sortie standard
    Par progfou dans le forum Windows Mobile
    Réponses: 3
    Dernier message: 06/03/2007, 10h35
  5. Récupérer la sortie standard dans une autre classe
    Par EvilAngel dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 22/12/2006, 18h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo