Defined in header <cstdio> | ||
---|---|---|
std::FILE* freopen( const char* filename, const char* mode, std::FILE* stream ); |
First, attempts to close the file associated with stream
, ignoring any errors. Then, if filename
is not null, attempts to open the file specified by filename
using mode
as if by fopen
, and associates that file with the file stream pointed to by stream
. If filename
is a null pointer, then the function attempts to reopen the file that is already associated with stream
(it is implementation defined which mode changes are allowed in this case).
Parameters
filename | - | file name to associate the file stream to | ||||||||||||||||||||||||||||||||||||||||
mode | - | null-terminated character string determining new file access mode
| ||||||||||||||||||||||||||||||||||||||||
stream | - | the file stream to modify |
Return value
stream
on success, NULL
on failure.
Notes
freopen
is the only way to change the narrow/wide orientation of a stream once it has been established by an I/O operation or by std::fwide
.
Example
The following code redirects stdout
to a file.
#include <cstdio> int main() { std::printf("stdout is printed to console\n"); if(std::freopen("redir.txt", "w", stdout)) { std::printf("stdout is redirected to a file\n"); // this is written to redir.txt std::fclose(stdout); } }
Output:
stdout is printed to console
See also
opens a file (function) | |
closes a file (function) | |
C documentation for freopen |
Please login to continue.