fflush
—flush buffered file output#include <stdio.h> int fflush(FILE *fp); int _fflush_r(struct _reent *reent, FILE *fp);
Description
The stdio
output functions can buffer output before delivering it
to the host system, in order to minimize the overhead of system calls.
Use fflush
to deliver any such pending output (for the file
or stream identified by fp) to the host system.
If fp is NULL
, fflush
delivers pending output from all
open files.
Additionally, if fp is a seekable input stream visiting a file descriptor, set the position of the file descriptor to match next unread byte, useful for obeying POSIX semantics when ending a process without consuming all input from the stream.
The alternate function _fflush_r
is a reentrant version, where the
extra argument reent is a pointer to a reentrancy structure, and
fp must not be NULL.
Returns
fflush
returns 0
unless it encounters a write error; in that
situation, it returns EOF
.
Portability
ANSI C requires fflush
. The behavior on input streams is only
specified by POSIX, and not all implementations follow POSIX rules.
No supporting OS subroutines are required.