Bonjour,
Je souhaite rediriger la sortie standard vers un fichier. J'y arrive avec la fonction freopen.
Exemple :
Par contre, je ne trouve pas de moyen de pour revenir a l'état d'avant la redirection. Si je fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <stdio.h> main() { /* redirection de stdout dans un fichier */ if ( freopen("c:\\tempo.log", "w", stdout) == NULL) fprintf(stderr, "erreur a la redirection de stdout\n"); /* Cet affichage va dans le fichier tempo.log */ printf("Cet affichage va dans le fichier\n"); /* fermeture du flux stdout */ fclose(stdout); return 0; }
la chaine de caractère "Cet affichage va dans la sortie standard" ne va ni dans le fichier c:\\tempo.log, ni sur la sortie standard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include <stdio.h> main() { /* redirection de stdout dans un fichier */ if ( freopen("c:\\tempo.log", "w", stdout) == NULL) fprintf(stderr, "erreur a la redirection de stdout\n"); /* Cet affichage va dans le fichier tempo.log */ printf("Cet affichage va dans le fichier\n"); /* fermeture du flux stdout */ fclose(stdout); printf("Cet affichage va dans la sortie standard\n"); return 0; }
Je ne sais pas comment revenir à l'état d'avant pour que les printfs fonctionnent normalement.
Partager