fsync, fdatasync - synchronize a file's in-core and on-disk states
int fsync(int fildes);
int fdatasync(int fildes);
fsync() and fdatasync() cause all modified data and attributes of
fildes to be moved to a permanent storage device. This normally
results in all in-core modified copies of buffers for the associated
file to be written to a disk. fsync() and fdatasync() apply to
ordinary files, and apply to block special devices on systems which
permit I/O to block special devices.
fsync() and fdatasync() should be used by programs that require a file
to be in a known state, such as when building a simple transaction
fdatasync() causes all modified data and file attributes of fildes
required to retrieve the data to be written to disk.
fsync() causes all modified data and all file attributes of fildes
(including access time, modification time and status change time) to
be written to disk.
Together, fsync() and fdatasync() constitute support for File
fsync() and fdatasync() return 0 on success or -1 if an error occurs,
and set errno to indicate the error.
fsync and fdatasync fail if any of the following conditions are
[EBADF] fildes is not a valid descriptor.
[EINVAL] fildes refers to a file type to which fsync() or
fdatasync() does not apply.
The current implementation of these functions is inefficient for large
fsync() was developed by the the University of California, Berkeley
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
fcntl(2), fcntl(5), open(2), select(2), sync(2), sync(1M), unistd(5).
fsync(): AES, SVID3, XPG3, XPG4, POSIX.4
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000