home   contributing   bugs   download   online pages  

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | NOTES | SEE ALSO | COLOPHON


FFLUSH(3)                     Linux Programmer's Manual                     FFLUSH(3)

NAME         top

       fflush - flush a stream

SYNOPSIS         top

       #include <stdio.h>

       int fflush(FILE *stream);

DESCRIPTION         top

       For output streams, fflush() forces a write of all user-space buffered data
       for the given output or update stream via the stream's underlying write
       function.  For input streams, fflush() discards any buffered data that has
       been fetched from the underlying file, but has not been by the application.
       The open status of the stream is unaffected.

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

       For a non-locking counterpart, see unlocked_stdio(3).

RETURN VALUE         top

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

ERRORS         top

       EBADF  Stream is not an open stream, or is not open for writing.

       The function fflush() may also fail and set errno for any of the errors
       specified for write(2).

CONFORMING TO         top

       C89, C99, POSIX.1-2001, POSIX.1-2008.

       The standards do not specify the behavior for input streams.  Most other
       implementations behave the same as Linux.

NOTES         top

       Note that fflush() only flushes the user space buffers provided by the C
       library.  To ensure that the data is physically stored on disk the kernel
       buffers must be flushed too, for example, with sync(2) or fsync(2).

SEE ALSO         top

       fsync(2), sync(2), write(2), fclose(3), fopen(3), setbuf(3), unlocked_stdio(3)

COLOPHON         top

       This page is part of release 3.23 of the Linux man-pages project.  A
       description of the project, and information about reporting bugs, can be found
       at http://www.kernel.org/doc/man-pages/.

GNU                                   2009-09-06                            FFLUSH(3)