-
Recup message console
Un truc qui me rend dingue :
Dans un programme en C, je lance un exe avec la commande system :
system("prog.exe /argument1 ... /argumentx");
Tout se passe bien.
Maintenant je veux recuperer les messages affichés par prog.exe dans la console. Je fais :
system("prog.exe \argument1 ... \ argumentx > test.txt");
A là ça plante car mon prog.exe considère que "> test.txt" est un argument non valide.
Pourtant quand je tape directement dans ma console dos "prog.exe \argument1 ... \ argumentx > test.txt", ben là ça marche !
Comprend pas !
-
Dans le 1er cas (en utilisant system()), la chaine "> fichier.txt" fait partie des arguments de la commande.
Dans le 2eme cas (par le shell), la chaine "> fichier.txt" est interceptée et gérée par le shell. C'est lui qui s'occupe de la redirection et donc ce paramètre n'est pas passé à ton programme
-
Dans ce cas quelle est la solution pour faire une sortie fichier (ou recuperer les infos) avec la commande system() ?
-
Une solution fast and dirty :P
Code:
system("cmd /c \"programme.exe param1 param2\" > fichier.txt");
-
Je vous aime :king::king::king:
-
C'est bizarre, il me semblait que system() invoquait le shell plutôt que d'appeler directement le programme (contrairement à fork()+exec() ou CreateProcess()).