|Linux & Unix Commands - Search Man Pages
FSYNC(2) Linux Programmer's Manual FSYNC(2)
fsync, fdatasync - synchronize a file's complete in-core state with that on disk
int fsync(int fd);
int fdatasync(int fd);
fsync copies all in-core parts of a file to disk, and waits until the device reports that
all parts are on stable storage. It also updates metadata stat information. It does not
necessarily ensure that the entry in the directory containing the file has also reached
disk. For that an explicit fsync on the file descriptor of the directory is also needed.
fdatasync does the same as fsync but only flushes user data, not the meta data like the
mtime or atime.
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
EBADF fd is not a valid file descriptor open for writing.
fd is bound to a special file which does not support synchronization.
EIO An error occurred during synchronization.
In case the hard disk has write cache enabled, the data may not really be on permanent
storage when fsync/fdatasync return.
When an ext2 file system is mounted with the sync option, directory entries are also
implicitly synced by fsync.
On kernels before 2.4, fsync on big files can be inefficient. An alternative might be to
use the O_SYNC flag to open(2).
POSIX.1b (formerly POSIX.4)
bdflush(2), open(2), sync(2), mount(8), update(8), sync(8)
Linux 1.3.85 2001-04-18 FSYNC(2)
All times are GMT -4. The time now is 02:48 AM.