bonjour,
je travail sous un environnement windows avec borland cpp.
j'ecris un programme qui lance plusieurs autre programme (d'on je n ai pas les sources) avec une commande de type : system("start
quand ej lance manuellement l'un de ces programmes dans une console, avec la commande:
c:\prccom\prog.exe -A > sortie.txt
le prog.exe affiche une sortie texte dans la console et l'envoie dans le fichier texte sortie.txt . Je souppconne prog.exe d'utiliser une focntion printf ou cout.
Pour tout faire en C :
j'ai essayer entre autre :
system("start c:\\prccom\\prog.exe -A >> sortie.txt");
mais le prog.exe est bien lancer (dans une consoel qui ce referme des que l'affcihage est fini, le fichier sortie est bien crée, mais il est vide.
Comment recupere le flux de donné afficher dans la console et l'envoyer vers une variable ou un fichier texte...
il faudrait que tu lances d'abord cmd.exe et ensuite que tu lui fasses ouvrir ton programme
__________________________
............ Curtis: RTS 3D .............. ......
........... TeamMoteurProg...........
Aucun dit : et si tu a plusieurs fichier a ouvrir, ouvre un fichier .bat que tu aura crée precedament, puis execute le a partir de cmd.exe
ou écris via le programme le .bat nécessaire.
__________________________
............ Curtis: RTS 3D .............. ......
........... TeamMoteurProg...........
Non non, pour pouvoir récupérer la sortie et manipuler/se servir de ce qu'écrit un programme sur la sortie standard, c'est bien les pipes ;)
__________________________
Be C++ Mon Blog (C++, Intelligence Artificielle, Prolog)
je suis parvenu a faire la sorite du programme vers mon fichier comem voulu initialement avec la commande :
system("c:\\prccom\\prog.exe -A >> sortie.txt");
bref en suppriment le start. je ne sasi pas a quio il servait , je ai juste vu sur le net des exemple avec , et vue que ej debut, j ai betement recopier.
il me semble que _popen soit juste pour un environement visual ???? je prefer utiliser un compilateur libre comme borland. Mais j aimerai quand meme avoir plus d'information sur popen et pclose . car en fait je devrai faire la meme chose sur un environnement linux, puis mac. je sasi je suis ambitieux pour un debutant, mais je conani assez bien l'envirronement linux ( pas la prog, c/c++ par contre)
La sortie standard est la sortie console, dans ton cas :)
En fait, sous windows tu as _popen/_pclose et sous linux par exemple c'est popen/pclose. Il suffit que tu te serve de #ifdef WIN32 et compagnie pour que ton programme puisse compiler sans toucher à une ligne sous Windows et Linux.
__________________________
Be C++ Mon Blog (C++, Intelligence Artificielle, Prolog)