Redirection de la sortie standart

Redirection de la sortie standart - Programmation

Marsh Posté le 02-03-2002 à 19:16:52    

Yop !
 
 
Voila, pour un prog donné il faut que je redirige la sortie standart vers autre chose . (eg que le printf ne s'affiche pas dans une console mais dans un edit) .
 
En farfouillant dans la msdn j'ai trouvé ca "Creating a Child Process with Redirected Input and Output", qui marche formidablement bien , mais seulement pour les programmes appelé via "CreateProcess", et non pour le programme principal en lui meme . Pour ce dernier, printf renvoi tjs sur la console.
 
Une solution serait de refaire une fonction printf-like qui se charge de recup le bon handle (le redirigé) et d'ecrire dedans, mais bon, cela ne me plait qu'a moitié...
 
Y a t'il moyen (je pense bien que oui :D )de rediriger stdout/stderr vers un HANDLE du programme principal ?
 
thks !

Reply

Marsh Posté le 02-03-2002 à 19:16:52   

Reply

Marsh Posté le 02-03-2002 à 19:23:26    

chrisbk a écrit a écrit :

Yop !
 
 
Voila, pour un prog donné il faut que je redirige la sortie standart vers autre chose . (eg que le printf ne s'affiche pas dans une console mais dans un edit) .
 
En farfouillant dans la msdn j'ai trouvé ca "Creating a Child Process with Redirected Input and Output", qui marche formidablement bien , mais seulement pour les programmes appelé via "CreateProcess", et non pour le programme principal en lui meme . Pour ce dernier, printf renvoi tjs sur la console.
 
Une solution serait de refaire une fonction printf-like qui se charge de recup le bon handle (le redirigé) et d'ecrire dedans, mais bon, cela ne me plait qu'a moitié...
 
Y a t'il moyen (je pense bien que oui :D )de rediriger stdout/stderr vers un HANDLE du programme principal ?
 
thks !  




 
cherche de la doc sur les PIPE, ca permet, comme avec un fichier, de créer un handle ou tu peux y lire, sauf que au lieu de lire le fichier, il le lance.

Reply

Marsh Posté le 02-03-2002 à 21:10:19    

sous win ou sous linux tu fais:
 
tomprog > toto.txt
 
et dans toto.txt tu as tout les printf enregistre...
 
c simple :sol:

Reply

Marsh Posté le 02-03-2002 à 21:56:43    

ca marche pas avec freopen?
 
(c'est une question, je n'ai pas essaye)
 
A+
LEGREG

Reply

Marsh Posté le 02-03-2002 à 23:20:06    

BIGBEN49 a écrit a écrit :

sous win ou sous linux tu fais:
 
tomprog > toto.txt
 
et dans toto.txt tu as tout les printf enregistre...
 
c simple :sol:  




 
toi t'as tout piger a mon pb :D
 
 
Legreg : freopen redirige vers un FILE * , et non un HANDLE, ce qui fait que ca risque d'etre un peu la foire pour relire ca en amont

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed