# 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 `stream` is a null pointer, all open output streams are flushed, including the ones manipulated within library packages or otherwise not directly accessible to the program.

### Parameters

stream | - | the file stream to write out

### Return value

Returns zero on success. Otherwise EOF is returned and the error indicator of the file stream is set.

### 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.

### See also

fopen | opens a file (function)
fclose | closes a file (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/c/fflush&oldid=102113"