Comment plus ton regirige les plus de sortie (stdout) vers autre chose que l'ecran ? ... un fichier par exemple.
Version imprimable
Comment plus ton regirige les plus de sortie (stdout) vers autre chose que l'ecran ? ... un fichier par exemple.
Pour le faire directement dans le code C, tu peux regarder du cote des fonction dup2. De memoire la question avait deja ete evoquer et resolue sur ce forum.
Sinon tu peux aussi tout simplement adapte l'appel du programme pour rediriger le flux de sortie standard vers un fichier, si ton progamme s'appelle prog.exe :
Code:prog.exe > out.txt
sous linux, il y a les appels systemes dup() et dup2()
sous windows: j'avais vu un algo dans "C/C++ la bible du programmeur" mais je ne l'ai plus en tete, desolé :oops:
Ou sinon tu peux utiliser d'autre FILE *. Par exemple si c'est pour du debug que tu veux mettre soit en stdout soit dans un fichier, tu peux faire ca :
Code:
1
2
3
4
5
6
7
8 if (nom_fichier!=NULL) {/* fichier debug */ output=fopen(nom_fichier,"w"); /* TODO : error */ }else{ output=stdout; } /* ... */ fprintf(output,"Debug :...
La fonction freopen peut convenir non ?
Exemple :Code:FILE* freopen(char* fichier, char* mode, FILE* flux) ;
Nas'Code:
1
2
3 char NomFicher[]="fichier.txt" ; freopen(NomFichier, "w" , stdout); /* nom du fichier, mode de lecture, sortie standard */
Oki merci !!
Je pense que je vais réussir a me debrouiller avec ca.