fclose(3S)fclose(3S)NAMEfclose(), fflush(), fclose_unlocked(), fflush_unlocked() - close or
flush a stream
causes any buffered data for the named stream to be written out, and
the stream to be closed. Buffers allocated by the standard input/out‐
put system may be freed.
is performed automatically for all open files upon calling exit(2).
If stream points to an output stream or an update stream in which the
most recent operation was output, causes any buffered data for the
stream to be written to that file; otherwise any buffered data is dis‐
carded. The stream remains open.
If stream is a null pointer, performs this flushing action on all cur‐
rently open streams.
and close or flush a stream.
Upon successful completion, and return 0. Otherwise, they return EOF
and set to indicate the error.
If or fails, is set to one of:
The flag is set for the file descriptor underlying stream
and the process would be delayed in the write opera‐
The file descriptor underlying
stream is not valid.
An attempt was made to write a file
that exceeds the process's file size limit or the max‐
imum file size (see ulimit(2)).
or was interrupted by a signal.
The process is in a background process group
and is attempting to write to its controlling termi‐
nal, is set, the process is neither ignoring nor
blocking the signal, and the process group of the
process is orphaned.
There was no free space remaining on the device containing the
An attempt was made to write to a pipe
that is not open for reading by any process. A signal
is also sent to the process.
Additional values may be set by the underlying and functions (see
write(2), lseek(2) and close(2)).
and are obsolescent interfaces supported only for compatibility with
existing DCE applications. New multithreaded applications should use
SEE ALSOclose(2), exit(2), lseek(2), write(2), flockfile(3S), fopen(3S), set‐