Récupérer la sortie standart dans un buffer

Récupérer la sortie standart dans un buffer - C - Programmation

Marsh Posté le 17-04-2005 à 13:47:48    

Bonjour à tous,
 
Savez-vous comment s'y prendre pour récupérer dans un buffer (char *) la sortie standard de la commande  
 
system("ma commande" );
 
 
Je pense que c'est faisable, peut-être en regardant du coté des pipes mais ce n'est qu'une vague idée...
Pour l'instant je redirige dans un fichier et j'analyse ce dernier mais je voudrais ne pas passer par un fichier...
 
Merci d'avance !

Reply

Marsh Posté le 17-04-2005 à 13:47:48   

Reply

Marsh Posté le 17-04-2005 à 14:13:45    

regarde du côté des pipe. par exemple popen si ton système la fournit.

Reply

Marsh Posté le 17-04-2005 à 14:23:12    

Merci beaucoup, effectivement j'ai msdné popen et j'ai trouvé la réponse à ma question :
 
http://msdn.microsoft.com/library/ [...] wpopen.asp

Reply

Marsh Posté le 28-04-2005 à 21:35:16    

Et sous Linux [:alarmclock133] ?
 
 
(:D)

Reply

Marsh Posté le 28-04-2005 à 22:02:13    

dernierement j'ai fait avec un pipe sous dos, et un simple gets dans le programme pour recuperer stdin et un puts pour envoyer sur stdout
 
ça me donne par exemple c:\>dir *.txt | monprog.exe > error.log
 
je sais pas si c'est tres propre, mais ça marche ?
 
j'imagine que sous linux c'est pareil ?


---------------
Leboncoin vers RSS | Je pisse sur les 4pat' mixer et sur les Bi impuissants  :o
Reply

Marsh Posté le 28-04-2005 à 22:52:43    

oui, mais utilise fgets a la place de gets
 
man gets
 

Citation :

Because it is impossible to tell without knowing the  data
       in  advance  how  many  characters  gets()  will read, and
       because gets() will continue to store characters past  the
       end  of  the buffer, it is extremely dangerous to use.

Reply

Sujets relatifs:

Leave a Replay

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