Comment faire pour rediriger stdout vers un fichier à partir d’un programme Visual C/C++

Exclusion de responsabilité du contenu obsolète de la base de connaissances

Cet article a été rédigé sur les produits pour lesquels Microsoft n’offre plus aucune prise en charge. Par conséquent, cet article est proposé « en l’état » et ne sera plus mis à jour.

Résumé

Cet article explique comment faire pour rediriger stdout vers un fichier à partir d’un programme C, puis restaurer le stdout d’origine à un point ultérieur dans le même programme. La fonction C généralement utilisée pour rediriger stdout ou stdin est freopen(). Pour rediriger stdout vers un fichier appelé FILE. TXT, utilisez l’appel suivant :
   freopen( "file.txt", "w", stdout ); 
Cette instruction permet à toutes les sorties suivantes, qui sont généralement dirigée vers stdout, pour atteindre le fichier. TXT.

Pour renvoyer stdout à l’écran (stdout de la valeur par défaut), utilisez l’appel suivant :
   freopen( "CON", "w", stdout ); 
Dans ces deux cas, vérifiez la valeur de retour de freopen() pour vous assurer que la redirection a effectivement eu lieu.

Voici un programme court pour démontrer la redirection de stdout :

Exemple de Code

// Compile options needed: none
#include <stdio.h>
#include <stdlib.h>

void main(void)
{
FILE *stream ;
if((stream = freopen("file.txt", "w", stdout)) == NULL)
exit(-1);

printf("this is stdout output\n");

stream = freopen("CON", "w", stdout);

printf("And now back to the console once again\n");
}
Ce programme suppose que stdout doit être redirigé vers la console à la fin du programme.
Propriétés

ID d'article : 58667 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Commentaires