Namespaces
Variants
Actions

std::fflush

From cppreference.com
< cpp‎ | io‎ | c
 
 
 
 
Defined in header <cstdio>
int fflush(std::FILE* stream );

For output streams (and for update streams on which the last operation was output), writes any unwritten data from the stream's buffer to the associated output device.

For input streams (and for update streams on which the last operation was input), the behavior is undefined.

If any data are written to an output device, returning from std::fflush establishes an observable checkpoint.

(since C++26)

If stream is a null pointer, the flushing operation specified above are performed on all open output streams, including the ones manipulated within library packages or otherwise not directly accessible to the program.

Contents

[edit]Parameters

stream - the file stream to write out

[edit]Return value

Returns 0 on success. Otherwise returns EOF and sets the error indicator of the file stream.

[edit]Notes

POSIX extends the specification of fflush by defining its effects on an input stream, as long as that stream represents a file or another seekable device: in that case the POSIX file pointer is repositioned to match the C stream pointer (which effectively undoes any read buffering) and the effects of any std::ungetc or std::ungetwc that weren't yet read back from the stream are discarded.

Microsoft also extends the specification of fflush by defining its effects on an input stream: in Visual Studio 2013 and prior, it discarded the input buffer, in Visual Studio 2015 and newer, it has no effect, buffers are retained.

[edit]See also

opens a file
(function)[edit]
closes a file
(function)[edit]
C documentation for fflush
close