FDATASYNC (2)
synchronize a file's in-core data with that on disk
SYNOPSIS
#include <unistd.h>
#ifdef _POSIX_SYNCHRONIZED_IO
int fdatasync(int fd );
#endif
DESCRIPTION
fdatasync
flushes all data buffers of a file to disk (before the system
call returns). It resembles
fsync
but is not required to update the metadata such as access time.
Applications that access databases or log files often write a tiny
data fragment (e.g., one line in a log file) and then call
fsync
immediately in order to ensure that the written data is physically
stored on the harddisk. Unfortunately,
fsync
will always initiate two write operations: one for the newly written
data and another one in order to update the modification time stored
in the inode. If the modification time is not a part of the transaction
concept
fdatasync
can be used to avoid unnecessary inode disk write operations.
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and
errno
is set appropriately.
ERRORS
EBADF
fd
is not a valid file descriptor open for writing.
EROFS , EINVAL
fd
is bound to a special file which does not support synchronization.
EIO
An error occurred during synchronization.
BUGS
Currently (Linux 2.0.23)
fdatasync
is equivalent to
fsync .
CONFORMING TO
POSIX1b (formerly POSIX.4)
SEE ALSO
- fsync (2) -
B O Gallmeister POSIX 4 O'Reilly pp 220-223 and 343
|
|