Résultats de 1 à 6 sur 6

Sujet : comment recupérer la sortie de system()

  1. #1

    comment recupérer la sortie de system()

    j\'aimerai recupérer la sortie de la fonction system() afin de l\'ecrire dans un tube puis recuperer ce qu\'il y a dans le tube afin de le communiquer à l\'entrée de la commande que je passe en argument à la fonction system()
    en faite je dois ecrire 1 programme c qui lit une commande shell contenant un tube ,je dois recuperer la camande de gauche l\'executer puis communiquer çà sortie à la commande de droite a l\'aide de processus, de la fonction pipe et de la fonction system mais je ne sais pas du tout comment faire !!
    alors si qq \'1 peus m\'aider ce serai vraiment gentille!

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Salut, ouah j\'ai pas tout suivi la.

    Pour faire simple pour récupérer la sortie de system() il suffit de faire
    Code:
    int a = system(\"un_porg.exe\");
    En espérant que ca t\'aidera. :
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    1 012
    Je ne pense pas vraiment que ce soit ça qu\'il voulait. En fait je pense plutôt qu\'il veut récupérer la chaîne de caractère que le system( \"leprog.exe\" ); va générer, donc par exemple si tu fais: system( \"ping 0.0.0.0\" ); qui va sortir les 4 tentatives et leurs aboutissement...

    Mais bon je ne sais pas trop comment faire ça :S:

    ciao :wink:
    Grégory S.

    eVias Web & Software Solutions.

    Développement Web et logiciel en tout genre et Open Source.

    FOSDEM 2008. Venez -y nombreux !

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Dans ce cas la, on peut ne pas récupérer la sortie du system\"\") qui correspond au
    Code:
    return 0;
    de la fin d\'un main.
    Donc forcément un int.

    Il faut faire autrement, mais comment ?
    La question reste entière.
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  5. #5
    Membre MP
    Inscrit
    août 2013
    Messages
    627
    Les pipes d une lignes de commandes sont géré par le shell. pas par ton programme.
    ... Until then, we're better off dead
    A smile on the lips and a hole in the head ...

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    147
    Bonjour

    J\'imagine que tu utilise linux comme OS. Si j\'ai bien compris ton probleme shakacdo, une solution de cette forme devrait resoudre ton probleme

    system(\"ls | wc\");

    Sinon le petit programme C qui lit deux commandes et qui les execute avec un pipe entre les deux est le suivant

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char * argv[])
    {
            char cmdg[128], cmdd[128], cmd[256];
            scanf(\"%s\", cmdg);
            scanf(\"%s\", cmdd);
            sprintf(cmd, \"%s | %s \", cmdg, cmdd);
            return system(cmd);
    }

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé