FFLUSH(3C)              Standard C Library Functions              FFLUSH(3C)
NAME
       fflush - flush a stream
SYNOPSIS
       #include <stdio.h>       
int fflush(
FILE *stream);
DESCRIPTION
       If 
stream points to an output stream or an update stream in which the
       most recent operation was not input, 
fflush() causes any unwritten
       data for that stream to be written to the file, and the 
st_ctime and       
st_mtime fields of the underlying file are marked for update.
       If 
stream points to an input stream or an update stream into which
       the most recent operation was input, that stream is flushed if it is
       seekable and is not already at end-of-file.  Flushing an input stream
       discards any buffered input and adjusts the file pointer such that
       the next input operation accesses the byte after the last one read.
       A stream is seekable if the underlying file is not a pipe, FIFO,
       socket, or TTY device.
       If 
stream is a null pointer, 
fflush() performs this flushing action
       on all streams for which the behavior is defined above.
       An input stream, seekable or non-seekable, can be flushed by
       explicitly calling 
fflush() with a non-null argument specifying that
       stream.
RETURN VALUES
       Upon successful completion, 
fflush() returns 
0. Otherwise, it returns       
EOF and sets 
errno to indicate the error.
ERRORS
       The 
fflush() function will fail if:       
EAGAIN                 The 
O_NONBLOCK flag is set for the file descriptor
                 underlying 
stream and the process would be delayed in the
                 write operation.       
EBADF                 The file descriptor underlying 
stream is not valid.       
EFBIG                 An attempt was made to write a file that exceeds the
                 maximum file size or the process's file size limit; or the
                 file is a regular file and an attempt was made to write at
                 or beyond the offset maximum associated with the
                 corresponding stream.       
EINTR                 The 
fflush() function was interrupted by a signal.       
EIO                 The process is a member of a background process group
                 attempting to write to its controlling terminal, 
TOSTOP is
                 set, the process is neither ignoring nor blocking 
SIGTTOU,
                 and the process group of the process is orphaned.  
stream                 was created by 
open_wmemstream(3C) and a wide-character or
                 byte sequence buffered is invalid in the current locale.       
ENOSPC                 There was no free space remaining on the device containing
                 the file.       
EPIPE                 An attempt is made to write to a pipe or 
FIFO that is not
                 open for reading by any process. A 
SIGPIPE signal will also
                 be sent to the calling process.
       The 
fflush() function may fail if:       
ENXIO                A request was made of a non-existent device, or the request
                was beyond the limits of the device.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Standard        |
       +--------------------+-----------------+
       |MT-Level            | MT-Safe         |
       +--------------------+-----------------+
SEE ALSO
       getrlimit(2), 
ulimit(2), 
attributes(7), 
standards(7)                               March 25, 2020                     FFLUSH(3C)