Redirection de flux ?

Signaler
Messages postés
56
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
3 décembre 2009
-
Messages postés
56
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
3 décembre 2009
-
Je souhaite utiliser la fonction system() et recuperer le resultat d'une commande
passée en paramètre.
Or cette foction affiche directement dans la console le résultat.
J'ai un peu cherché et si j'ai bien compris la redirection de flux pourrait être la solution
mais je n'ai pas trouvé comment faire.
Sinon j'avais pense a chercher a obtenir le pointeur du buffer d'affichage, mais j'ai
uniquement trouvé la fonction streambuf::pptr() qui est protegé (peut on qd meme
l'utiliser?).

Merci.

4 réponses

Messages postés
354
Date d'inscription
mercredi 18 décembre 2002
Statut
Membre
Dernière intervention
24 mars 2011
1
Salut,

Tu n'as qu'a rediriger le flux de sortie vers un fichier

exemple :

ls /home/ > home.txt
L'affichage de ls sera ecrit dans le fichier home.txt

Utilise 2> pour rediriger les erreurs et >> pour ecrire à la suite du fichier

[mailto:D@runia D@runia]
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
4
Utilises popen et le tampon d'affichage c'est celui de ton
processus, celui du processus lancé par system en est une copie.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
Sous Windows:
regarde CreatePipe() dans MSDN, il y a exemple complet de lecture du flux console.

ciao...
BruNews, MVP VC++
Messages postés
56
Date d'inscription
jeudi 4 décembre 2003
Statut
Membre
Dernière intervention
3 décembre 2009

>> Darunia, j'y avais deja pense mais je trouve ca vraiment trop "crade" comme
solution.
Bon je pense que je vais essayer d'appliquer la solution de Brunews.

Merci pour votre aide!