Manpages

Manpage of FSYNC

FSYNC

Section: Linux Programmer's Manual (2)
Updated: 2001-04-18
Index
Return to Main Contents
 

NAME

fsync, fdatasync - synchronize a file's complete in-core state with that on disk  

SYNOPSIS

#include <unistd.h>

int fsync(int fd);

int fdatasync(int fd);  

DESCRIPTION

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.

 

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.
 

NOTES

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 implicitely 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).  

CONFORMING TO

POSIX.1b (formerly POSIX.4)  

SEE ALSO

bdflush(2), open(2), sync(2), mount(8), update(8), sync(8)


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
NOTES
CONFORMING TO
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 04:04:09 GMT, April 18, 2024