2004-11-03 13:51:07 +00:00
|
|
|
|
.\" Hey Emacs! This file is -*- nroff -*- source.
|
|
|
|
|
.\"
|
|
|
|
|
.\" This manpage is Copyright (C) 1992 Drew Eckhardt;
|
|
|
|
|
.\" 1993 Michael Haardt, Ian Jackson.
|
|
|
|
|
.\"
|
|
|
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
|
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
|
|
|
.\" preserved on all copies.
|
|
|
|
|
.\"
|
|
|
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
|
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
|
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
|
|
|
.\" permission notice identical to this one.
|
|
|
|
|
.\"
|
|
|
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
|
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
|
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
|
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
|
|
|
.\" have taken the same level of care in the production of this manual,
|
|
|
|
|
.\" which is licensed free of charge, as they might when working
|
|
|
|
|
.\" professionally.
|
|
|
|
|
.\"
|
|
|
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
|
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
|
|
|
.\"
|
|
|
|
|
.\" Modified Wed Jul 21 22:40:25 1993 by Rik Faith <faith@cs.unc.edu>
|
|
|
|
|
.\" Modified Sat Feb 18 15:27:48 1995 by Michael Haardt
|
|
|
|
|
.\" Modified Sun Apr 14 11:40:50 1996 by Andries Brouwer <aeb@cwi.nl>:
|
|
|
|
|
.\" corrected description of effect on locks (thanks to
|
|
|
|
|
.\" Tigran Aivazian <tigran@sco.com>).
|
|
|
|
|
.\" Modified Fri Jan 31 16:21:46 1997 by Eric S. Raymond <esr@thyrsus.com>
|
|
|
|
|
.\" Modified 2000-07-22 by Nicol<6F>s Lichtmaier <nick@debian.org>
|
|
|
|
|
.\" added note about close(2) not guaranteeing that data is safe on close.
|
|
|
|
|
.\"
|
|
|
|
|
.TH CLOSE 2 2001-12-13 "" "Linux Programmer's Manual"
|
|
|
|
|
.SH NAME
|
|
|
|
|
close \- close a file descriptor
|
|
|
|
|
.SH SYNOPSIS
|
|
|
|
|
.nf
|
|
|
|
|
.B #include <unistd.h>
|
|
|
|
|
.sp
|
|
|
|
|
.BI "int close(int " fd );
|
|
|
|
|
.fi
|
|
|
|
|
.SH DESCRIPTION
|
2005-06-22 10:49:19 +00:00
|
|
|
|
.BR close ()
|
2004-11-03 13:51:07 +00:00
|
|
|
|
closes a file descriptor, so that it no longer refers to any file and
|
2005-06-22 10:49:19 +00:00
|
|
|
|
may be reused.
|
|
|
|
|
Any record locks (see
|
|
|
|
|
.BR fcntl (2))
|
|
|
|
|
held on the file it was associated with,
|
2004-11-03 13:51:07 +00:00
|
|
|
|
and owned by the process, are removed (regardless of the file
|
|
|
|
|
descriptor that was used to obtain the lock).
|
|
|
|
|
.PP
|
|
|
|
|
If
|
|
|
|
|
.I 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
|
|
|
|
|
.BR unlink (2)
|
|
|
|
|
the file is deleted.
|
|
|
|
|
.SH "RETURN VALUE"
|
2005-06-22 10:49:19 +00:00
|
|
|
|
.BR close ()
|
2004-12-20 12:24:06 +00:00
|
|
|
|
returns zero on success.
|
|
|
|
|
On error, \-1 is returned, and
|
|
|
|
|
.I errno
|
|
|
|
|
is set appropriately.
|
2004-11-03 13:51:07 +00:00
|
|
|
|
.SH ERRORS
|
|
|
|
|
.TP
|
|
|
|
|
.B EBADF
|
|
|
|
|
.I fd
|
|
|
|
|
isn't a valid open file descriptor.
|
|
|
|
|
.TP
|
|
|
|
|
.B EINTR
|
|
|
|
|
The
|
|
|
|
|
.BR close ()
|
|
|
|
|
call was interrupted by a signal.
|
|
|
|
|
.TP
|
|
|
|
|
.B EIO
|
|
|
|
|
An I/O error occurred.
|
|
|
|
|
.SH "CONFORMING TO"
|
2005-07-18 15:05:56 +00:00
|
|
|
|
SVr4, SVID, POSIX, X/OPEN, 4.3BSD. SVr4 documents an additional
|
2004-11-03 13:51:07 +00:00
|
|
|
|
ENOLINK error condition.
|
|
|
|
|
.SH NOTES
|
|
|
|
|
Not checking the return value of close is a common but nevertheless
|
|
|
|
|
serious programming error. It is quite possible that errors on a
|
|
|
|
|
previous
|
|
|
|
|
.BR write (2)
|
|
|
|
|
operation are first reported at the final
|
2005-10-19 06:54:38 +00:00
|
|
|
|
.BR close ().
|
2004-11-03 13:51:07 +00:00
|
|
|
|
Not checking the return value when closing the file may lead to
|
|
|
|
|
silent loss of data. This can especially be observed with NFS
|
|
|
|
|
and with disk quota.
|
|
|
|
|
.PP
|
|
|
|
|
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
|
|
|
|
|
.BR fsync (2).
|
|
|
|
|
(It will depend on the disk hardware at this point.)
|
|
|
|
|
.SH "SEE ALSO"
|
|
|
|
|
.BR fcntl (2),
|
|
|
|
|
.BR fsync (2),
|
|
|
|
|
.BR open (2),
|
|
|
|
|
.BR shutdown (2),
|
|
|
|
|
.BR unlink (2),
|
|
|
|
|
.BR fclose (3)
|