close
CLOSE(E)            Linux Programmer's Manual            CLOSE(E)



NAME
       close - close a file descriptor

SYNOPSIS
       #include <unistd.h>

       int close(int fd);

DESCRIPTION
       close  closes  a  file  descriptor,  so  that it no longer
       refers to any file and may be reused. Any  locks  held  on
       the file it was associated with, and owned by the process,
       are removed (regardless of the file  descriptor  that  was
       used to obtain the lock).

       If fd is the last copy of a particular file descriptor the
       resources associated with it are freed; if the  descriptor
       was  the  last  reference to a file which has been removed
       using unlink(k) the file is deleted.

RETURN VALUE
       close returns zero on success, or -1 if an error occurred.

ERRORS
       EBADF  fd isn't a valid open file descriptor.

       EINTR  The close() call was interrupted by a signal.

       EIO    An I/O error occurred.

CONFORMING TO
       SVr4,  SVID,  POSIX,  X/OPEN,  BSD 4.3.  SVr4 documents an
       additional ENOLINK error condition.

NOTES
       Not checking the return value of close  is  a  common  but
       nevertheless  serious programming error.  It is quite pos-
       sible that errors on a  previous  write(e)  operation  are
       first  reported  at  the  final  close.   Not checking the
       return value when closing the file may lead to silent loss
       of  data.   This  can  especially be observed with NFS and
       disk quotas.

       A successful close does not guarantee that  the  data  has
       been  successfully  saved  to  disk,  as the kernel defers
       writes. It is not common for a  filesystem  to  flush  the
       buffers  when the stream is closed. If you need to be sure
       that the data is physically stored use fsync(c).  (It will
       depend on the disk hardware at this point.)

SEE ALSO
       open(n),   fcntl(l),  shutdown(n),  unlink(k),  fclose(e),
       fsync(c)



                            2001-12-13                   CLOSE(E)