HP-UX Reference (11i v2 07/12) - 2 System Calls (vol 5)
f
fsync(2) fsync(2)
NAME
fsync(), fdatasync() - synchronize a file’s in-core and on-disk states
SYNOPSIS
#include <unistd.h>
int fsync(int fildes);
int fdatasync(int fildes);
DESCRIPTION
fsync() and fdatasync() cause all modified data and attributes of fildes to be moved to a permanent
storage device. This normally results in all in-core modified copies of buffers for the associated file to be
written to a disk.
fsync() and fdatasync() apply to ordinary files, and apply to block special dev-
ices on systems which permit I/O to block special devices.
fsync() and fdatasync() should be used by programs that require a file to be in a known state, such
as when building a simple transaction facility.
fdatasync() causes all modified data and file attributes of fildes required to retrieve the data to be writ-
ten to disk.
fsync() causes all modified data and all file attributes of fildes (including access time, modification time
and status change time) to be written to disk.
Together,
fsync() and fdatasync() constitute support for File Synchronization.
RETURN VALUE
fsync() and fdatasync() return 0 on success or −1 if an error occurs, and set errno
to indicate
the error.
ERRORS
fsync and fdatasync fail if any of the following conditions are encountered:
[EBADF] fildes is not a valid descriptor.
[EINVAL] fildes refers to a file type to which
fsync() or fdatasync() does not apply.
WARNINGS
The current implementation of these functions is inefficient for large files.
AUTHOR
fsync() was developed by the the University of California, Berkeley and HP.
SEE ALSO
fcntl(2), fcntl(5), open(2), select(2), sync(2), sync(1M), unistd(5).
STANDARDS CONFORMANCE
fsync(): AES, SVID3, XPG3, XPG4, POSIX.4
fdatasync() :POSIX.4
HP-UX 11i Version 2: December 2007 Update − 1 − Hewlett-Packard Company 105