4.1cBSD/usr/man/man2/fsync.2

Compare this file to the similar file:
Show the results in this format:

.TH FSYNC 2 2/13/83
.SH NAME
fsync \- synchronize a file's in-core state with that on disk
.SH SYNOPSIS
.ft B
fsync(fd)
.br
int fd;
.ft R
.SH DESCRIPTION
.I Fsync
causes all modified data for and modified attributes of \fIfd\fP
to be moved to a permanent storage device, so that the changes
will be guaranteed to survive hardware failures resulting in system
crashes.
This normally results in all in-core modified copies of buffers for
the file to be written to a disk.
.PP
.I Fsync
should be used by programs which require a file to be
in a known state; for example in building a simple transaction
facility.
.SH "RETURN VALUE
A 0 value is returned on successf.  A \-1 value indicates
an error.
.SH "ERRORS
The \fIfsync\fP fails if:
.TP 15
[EBADF]
\fIFd\fP is not a valid descriptor.
.TP 15
[EINVAL]
\fIFd\fP refers to a socket, not to a file.
.SH "SEE ALSO"
sync(2), sync(8), update(8)
.SH BUGS
This current implemetation of this call is expensive for large files.