ABCDEFGHIJKLMNOPQRSTUVWXYZ

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>

       #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  opera-
       tions:  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.

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)