How can you restore a redirected standard stream? Ans. The preceding example showed how you can redirect a standard stream from within your program. But what if later in your program you wanted to restore the standard stream to its original state? By using the standard C library functions named dup() and fdopen(), you can restore a standard stream such as stdout to its original state. The dup() function duplicates a file handle. You can use the dup() function to save the file handle corresponding to the stdout standard stream. The fdopen() function opens a stream that has been duplicated with the dup() function. Thus, as shown in the following example, you can redirect standard streams and restore them: #include void main(void); void main(void) { int orig_stdout; /* Duplicate the stdout file handle and store it in orig_stdout. */ orig_stdout = dup(fileno(stdout)); /* This text appears on-screen. */ printf('Writing to original stdout...\n'); /* Reopen stdout and redirect it to the 'redir.txt' file. */ freopen('redir.txt', 'w', stdout); /* This text appears in the 'redir.txt' file. */ printf('Writing to redirected stdout...\n'); /* Close the redirected stdout. */ fclose(stdout); /* Restore the original stdout and print to the screen again. */ fdopen(orig_stdout, 'w'); printf('I'm back writing to the original stdout.\n'); } - Study24x7
Social learning Network
11 Apr 2023 01:15 PM study24x7 study24x7

How can you restore a redirected standard stream? Ans. The preceding example showed how you can redirect a standard stream from within your program. But what if later in your program you wanted to restore the standard stream to its original state? By using the standard C library...

See more

study24x7
Write a comment
Related Questions
500+   more Questions to answer
Most Related Articles