Given the following function:
freopen(\"file.txt\",\"w\",stdout);
Redirects stdout into a file, how do I make it so stdout redirects back i
You should be able to use _dup to do this
Something like this should work (or you may prefer the example listed in the _dup
documentation):
#include
#include
...
{
int stdout_dupfd;
FILE *temp_out;
/* duplicate stdout */
stdout_dupfd = _dup(1);
temp_out = fopen("file.txt", "w");
/* replace stdout with our output fd */
_dup2(_fileno(temp_out), 1);
/* output something... */
printf("Woot!\n");
/* flush output so it goes to our file */
fflush(stdout);
fclose(temp_out);
/* Now restore stdout */
_dup2(stdout_dupfd, 1);
_close(stdout_dupfd);
}