Rediriger le retour d'une fonction ?!

kod32 Messages postés 46 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 13 novembre 2004 - 6 mai 2004 à 17:26
kod32 Messages postés 46 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 13 novembre 2004 - 6 mai 2004 à 22:09
Salut,

je souhaiterais dans mon programme (en C) stocker le résultat de la fonction system() dans un buffer.
Malheureusement j'ai constaté que la fonction system() redirige toute son exécution sur la sortie standard.

Ma question est la suivante :
est il possible de rediriger toute la sortie standard d'un programme où on veut (je suis sous win pas sous unix :'(

Ou sinon est il possible d'accéder à la fonction système pour modifier son printf(), je ne trouve pas cette fonction dans stdio.h, elle semble etre intégrée en dur dans le langage...

Merci

kod

3 réponses

hilairenicolas Messages postés 398 Date d'inscription jeudi 30 octobre 2003 Statut Membre Dernière intervention 15 juin 2007 2
6 mai 2004 à 17:35
avec system, tu peux rediriger vers un fichier, c'est déjà ca ...

system("dir >fich.txt");

crée un fichier avec le résultat de la comande dir
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
6 mai 2004 à 21:08
FILE *result=popen("dir","r");

...

pclose(result);

c'est pas ansi mais posix, ca peu depanner si tu utilise devcpp ou migwin
0
kod32 Messages postés 46 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 13 novembre 2004
6 mai 2004 à 22:09
ok je note, je vais tester tout ça, si qqu'un trouve un bricolage de plus, je suis preneur.

Merci !
0
Rejoignez-nous