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