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 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.


CONFORMING TO

     SVr4, SVID, POSIX, X/OPEN, BSD 4.3.  SVr4 documents an addi-
     tional ENOLINK error condition.


NOTES

     Not checking the return value  of  close  is  a  common  but
     nevertheless  serious programming error.  File system imple-
     mentations  which  use  techniques  as  ``write-behind''  to
     increase   performance  may  lead  to  write(2)  succeeding,
     although the data has  not  been  written  yet.   The  error
     status may be reported at a later write operation, but it is
     guaranteed to be reported on closing the file.  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.


SEE ALSO

     open(2), fcntl(2), shutdown(2), unlink(2), fclose(3).