FCLOSE(3C)              Standard C Library Functions              FCLOSE(3C)
NAME
       fclose - close a stream
SYNOPSIS
       #include <stdio.h>       
int fclose(
FILE *stream);
DESCRIPTION
       The 
fclose() function causes the stream pointed to by 
stream to be
       flushed and the associated file to be closed. Any unwritten buffered
       data for the stream is 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.
       The 
fclose() function marks for update the 
st_ctime and 
st_mtime       fields of the underlying file if the stream is writable and if
       buffered data has not yet been written to the file.  It will perform
       a 
close(2) operation on the file descriptor that is associated with
       the stream pointed to by 
stream.
       After the call to 
fclose(), any use of 
stream causes undefined
       behavior.
       The 
fclose() function is performed automatically for all open files
       upon calling 
exit(2).
RETURN VALUES
       Upon successful completion, 
fclose() returns 
0. Otherwise, it returns       
EOF and sets 
errno to indicate the error.
ERRORS
       The 
fclose() 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 
fclose() 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 thread.
       The 
fclose() 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
       close(2), 
exit(2), 
getrlimit(2), 
ulimit(2), 
fcloseall(3C), 
fopen(3C),       
stdio(3C), 
attributes(7), 
standards(7)                               March 25, 2020                     FCLOSE(3C)