Redirection de la sortie standart - Programmation
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 )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.
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
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
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 |
toi t'as tout piger a mon pb
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
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 )de rediriger stdout/stderr vers un HANDLE du programme principal ?
thks !