fdatasync
FDATASYNC(2) Linux Programmer’s Manual FDATASYNC(2)
NAME
fdatasync - synchronize a file’s in-core data with that on disk
SYNOPSIS
#include <unistd.h>
int fdatasync(int fd);
DESCRIPTION
fdatasync flushes all data buffers of a file to disk (before the sys-
tem 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 imme-
diately 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 synchro-
nization.
EIO An error occurred during synchronization.
BUGS
Currently (Linux 2.2) fdatasync is equivalent to fsync.
AVAILABILITY
On POSIX systems on which fdatasync is available, _POSIX_SYNCHRO-
NIZED_IO is defined in <unistd.h> to a value greater than 0. (See also
sysconf(3).)
CONFORMING TO
POSIX1b (formerly POSIX.4)
SEE ALSO
fsync(2), B.O. Gallmeister, POSIX.4, O’Reilly, pp. 220-223 and 343.
Linux 1.3.86 1996-04-13 FDATASYNC(2)