FSYNC(3C) Standard C Library Functions FSYNC(3C)
NAME
fsync - synchronize changes to a file
SYNOPSIS
#include <unistd.h>
int fsync(
int fildes);
DESCRIPTION
The
fsync() function moves all modified data and attributes of the file
descriptor
fildes to a storage device. When
fsync() returns, all in-
memory modified copies of buffers associated with
fildes have been
written to the physical medium. The
fsync() function is different from
sync(), which schedules disk I/O for all files but returns before the
I/O completes. The
fsync() function forces all outstanding data
operations to synchronized file integrity completion (see
fcntl.h(3HEAD) definition of
O_SYNC.)
The
fsync() function forces all currently queued I/O operations
associated with the file indicated by the file descriptor
fildes to the
synchronized I/O completion state. All I/O operations are completed as
defined for synchronized I/O file integrity completion.
RETURN VALUES
Upon successful completion,
0 is returned. Otherwise,
-1 is returned and
errno is set to indicate the error. If the
fsync() function fails,
outstanding I/O operations are not guaranteed to have been completed.
ERRORS
The
fsync() function will fail if:
EBADF The
fildes argument is not a valid file descriptor.
EINTR A signal was caught during execution of the
fsync() function.
EIO An I/O error occurred while reading from or writing to the
file system.
ENOSPC There was no free space remaining on the device containing
the file.
ETIMEDOUT Remote connection timed out. This occurs when the file is on
an
NFS file system mounted with the
soft option. See
mount_nfs(8).
In the event that any of the queued I/O operations fail,
fsync() returns
the error conditions defined for
read(2) and
write(2).
USAGE
The
fsync() function should be used by applications that require that a
file be in a known state. For example, an application that contains a
simple transaction facility might use
fsync() to ensure that all changes
to a file or files caused by a given transaction were recorded on a
storage medium.
The manner in which the data reach the physical medium depends on both
implementation and hardware. The
fsync() function returns when notified
by the device driver that the write has taken place.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Interface Stability | Committed |
+--------------------+-------------------+
|MT-Level | Async-Signal-Safe |
+--------------------+-------------------+
|Standard | See
standards(7). |
+--------------------+-------------------+
SEE ALSO
read(2),
sync(2),
write(2),
fdatasync(3C),
fcntl.h(3HEAD),
attributes(7),
standards(7),
mount_nfs(8) February 5, 2008
FSYNC(3C)