CLOSE(2)		  Linux Programmer's Manual		     CLOSE(2)



NAME
       close - close a file descriptor

SYNOPSIS
       #include 

       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(2) 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 ENO-
       LINK error condition.

NOTES
       Not checking the return value of close is a  common  but	 nevertheless
       serious programming error.  It is quite possible that errors on a pre-
       vious write(2) 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	 quo-
       tas.

       A  successful close does not guarantee that the data has been success-
       fully 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(2).	  (It
       will depend on the disk hardware at this point.)

SEE ALSO
       open(2), fcntl(2), shutdown(2), unlink(2), fclose(3), fsync(2)



				  2001-12-13			     CLOSE(2)