fclose(3p) - phpMan

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

PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the  corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.
NAME
       fclose - close a stream
SYNOPSIS
       #include <stdio.h>
       int fclose(FILE *stream);

DESCRIPTION
       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() function 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.
RETURN VALUE
       Upon  successful  completion,  fclose()  shall  return 0; otherwise, it
       shall return EOF  and set errno to indicate the error.
ERRORS
       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 process 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.
EXAMPLES
       None.
APPLICATION USAGE
       None.
RATIONALE
       None.
FUTURE DIRECTIONS
       None.
SEE ALSO
       close(), fopen(), getrlimit(), ulimit(), the Base Definitions volume of
       IEEE Std 1003.1-2001, <stdio.h>
COPYRIGHT
       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
       Specifications  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 Standard, the original IEEE and The Open Group  Standard
       is  the  referee document. The original Standard can be obtained online
       at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group                  2003                           FCLOSE(3P)