FFLUSH(3)              FreeBSD Library Functions Manual              FFLUSH(3)

NAME

     fflush, fflush_unlocked, fpurge - flush a stream

LIBRARY

     Standard C Library (libc, -lc)

SYNOPSIS

     #include <stdio.h>

     int
     fflush(FILE *stream);

     int
     fflush_unlocked(FILE *stream);

     int
     fpurge(FILE *stream);

DESCRIPTION

     The function fflush() forces a write of all buffered data for the given
     output or update stream via the stream's underlying write function.  The
     open status of the stream is unaffected.

     If the stream argument is NULL, fflush() flushes all open output streams.

     The fflush_unlocked() function is equivalent to fflush(), except that the
     caller is responsible for locking the stream with flockfile(3) before
     calling it.  This function may be used to avoid the overhead of locking
     the stream and to prevent races when multiple threads are operating on
     the same stream.

     The function fpurge() erases any input or output buffered in the given
     stream.  For output streams this discards any unwritten output.  For
     input streams this discards any input read from the underlying object but
     not yet obtained via getc(3); this includes any text pushed back via
     ungetc(3).

RETURN VALUES

     Upon successful completion 0 is returned.  Otherwise, EOF is returned and
     the global variable errno is set to indicate the error.

ERRORS

     [EBADF]            The stream argument is not an open stream.

     The function fflush() may also fail and set errno for any of the errors
     specified for the routine write(2), except that in case of stream being a
     read-only descriptor, fflush() returns 0.

SEE ALSO

     write(2), fclose(3), fopen(3), setbuf(3)

STANDARDS

     The fflush() function conforms to ISO/IEC 9899:1990 ("ISO C90").

HISTORY

     The fflush() function first appeared in Version 4 AT&T UNIX.  The
     fpurge() function first appeared in 4.4BSD.

FreeBSD 15.1-STABLE-HBSD          May 1, 2020                        FFLUSH(3)