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).
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 |
stream
on success, NULL
on failure.
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
.
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
opens a file (function) |
|
closes a file (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/io/c/freopen