close - close a file descriptor
int close(int fd));
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
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.
close returns zero on success, or -1 if an error occurred.
fd isn't a valid open file descriptor.
SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4 documents an addi-
tional ENOLINK error condition.
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
open(2), fcntl(2), shutdown(2), unlink(2), fclose(3).