fclose, fflush, fclose_unlocked, fflush_unlocked - Close
or flush a stream
#include <stdio.h>
int fclose(
FILE *stream ); int fclose_unlocked(
FILE *stream ); int fflush(
FILE *stream ); int fflush_unlocked(
FILE *stream );
Standard C Library (libc)
Interfaces documented on this reference page conform to
industry standards as follows:
fclose(), fflush(): XSH4.0, XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information
about industry standards and associated tags.
Specifies the output or update stream.
The fclose() function writes buffered data to the stream
specified by the stream parameter, and then closes the
associated file. The function is automatically called for
all open files when the exit() function is invoked. Any
unwritten buffered data for the stream is delivered to the
host environment to be written to the file; any unread
buffered data is discarded. The stream is disassociated
from the file. If the associated buffer was automatically
allocated, it is deallocated. Any further use of the
stream specified by the stream parameter causes undefined
behavior.
The fclose() function performs the close() function on the
file descriptor associated with the stream parameter. If
the stream was writable and buffered data was not yet
written to the file, it marks the st_ctime and st_mtime
fields of the underlying file for update.
The fflush() function writes any buffered data for the
stream specified by the stream parameter and leaves the
stream open. If stream is a null pointer, the fflush()
function performs this flushing action on all streams for
which the behavior was previously defined. The st_ctime
and st_mtime fields of the underlying file are marked for
update.
[Tru64 UNIX] The fclose_unlocked() and fflush_unlocked()
functions are functionally identical to the fclose() and
fflush() functions, except that fclose_unlocked() and
fflush_unlocked() may be safely used only within a scope
that is protected by the flockfile() and funlockfile()
functions used as a pair. The caller must ensure that the
stream is locked before these functions are used.
Upon successful completion, the fclose(), fflush(),
fclose_unlocked(), and fflush_unlocked() functions return
a value of 0 (zero). Otherwise, EOF is returned, and errno
is set to indicate the error.
The fclose(), fflush(), fclose_unlocked(), and
fflush_unlocked() functions set errno to the specified
value for following conditions: The O_NONBLOCK option is
set for the file descriptor underlying the stream parameter
and the process would be delayed in the write operation.
The file descriptor underlying the stream parameter
is not valid. An attempt was made to write a file that
exceeds the process's file size limit or the maximum file
size. (See the ulimit(3) reference page).
The file is a regular file and an attempt was made
to write at or beyond the offset maximum associated
with the corresponding stream. The function was
interrupted by a signal that was caught. The
TOSTOP tty local mode causes a background process
to get a SIGTTOU signal if it attempts to write to
the controlling terminal. The SIGTTOU signal, if
it is not caught or ignored, will cause the process
to block in a stopped state. A process in an
orphaned process group is not allowed to become
stopped, since there is no unprivileged process to
unblock it. This condition only applies to operations
on stdio streams associated with ttys.
[EIO] is also associated with driver errors. There
was no free space remaining on the device containing
the file. An attempt was 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
process. A request was made of a nonexistent
device or the request was outside the capabilities
of the device.
Functions: close(2), exit(2), fopen(3), setbuf(3)
Standards: standards(5)
Network Programmer's Guide
fclose(3)
[ Back ] |