Synchronizing a File
fsync
()
and fdatasync
()
explicitly synchronize a file to
secondary storage.
The fsync
()
routine guarantees that the interface is synchronized at the I/O
file integrity completion level. fdatasync
()
guarantees that
the interface is synchronized at level of I/O data integrity completion. For
more information, see the
fsync
(3C) man page.
Applications can synchronize each I/O operation before the operation completes. Setting the
O_DSYNC
flag on the file description by using
open
()
or fcntl
()
ensures that all I/O
writes reach I/O data completion before the operation completes. Setting the
O_SYNC
flag on the file description ensures that all I/O
writes have reached completion before the operation is indicated as completed.
Setting the O_RSYNC
flag on the file description ensures that
all I/O reads read
()
and aio_read
()
reach the
same level of completion that is requested by the descriptor setting. The
descriptor setting can be either O_DSYNC
or
O_SYNC
. For more information, see the
open
(2),
fcntl
(2), and
read
(2) man pages.