Man Pages

fclose(3p) - phpMan fclose(3p) - phpMan

Command: man perldoc info search(apropos)  

FCLOSE(3P)                 POSIX Programmer's Manual                FCLOSE(3P)

       This manual page is part of the POSIX Programmer's Manual.  The Linux implementation of this interface may dif-
       fer (consult the corresponding Linux manual page for details of Linux behavior), or the interface  may  not  be
       implemented on Linux.

       fclose - close a stream

       #include <stdio.h>

       int fclose(FILE *stream);

       The  fclose()  function shall cause the stream pointed to by stream to be flushed and the associated file to be
       closed. Any unwritten buffered data for the stream shall be written to the file; any unread buffered data shall
       be discarded.  Whether or not the call succeeds, the stream shall be disassociated from the file and any buffer
       set by the setbuf() or setvbuf() function shall be disassociated from the stream. If the associated buffer  was
       automatically allocated, it shall be deallocated.

       The  fclose()  function  shall  mark for update the st_ctime and st_mtime fields of the underlying file, if the
       stream was writable, and if buffered data remains that has not yet been written to the file. The fclose() func-
       tion  shall  perform  the  equivalent  of  a  close() on the file descriptor that is associated with the stream
       pointed to by stream.

       After the call to fclose(), any use of stream results in undefined behavior.

       Upon successful completion, fclose() shall return 0; otherwise, it shall return EOF  and set errno to  indicate
       the error.

       The fclose() function shall 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.

       EFBIG  An attempt was made to write a file that exceeds the process' file size limit.

       EFBIG  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  pro-
              cess is orphaned. This error may also be returned under implementation-defined conditions.

       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 shall also be sent to the thread.

       The fclose() function may fail if:

       ENXIO  A request was made of a nonexistent device, or the request was outside the capabilities of the device.

       The following sections are informative.





       close(), fopen(), getrlimit(), ulimit(), the Base Definitions volume of IEEE Std 1003.1-2001, <stdio.h>

       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Stan-
       dard  for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifica-
       tions Issue 6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics Engineers,  Inc  and  The
       Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Stan-
       dard, the original IEEE and The Open Group Standard is the referee  document.  The  original  Standard  can  be
       obtained online at .

IEEE/The Open Group                  2003                           FCLOSE(3P)