FSYNC(2)

NAME
fsync - synchronize a file

SYNOPSIS
#include <unistd.h>

int fsync (int fd);

DESCRIPTION
fsync causes all modified data and attributes of fd 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 should be used by programs that require a file to be in a known state, for example, in building a simple transaction facility.

This call is only needed in special circumstances, as when several daemons are all modifying the same file simultaneously (currently impossible with existing IIgs filesystems). This call is basically a FlushGS.

RETURN VALUES
A 0 value is returned on success. A -1 value indicates an error.

ERRORS
The fsync fails if:

    EBADF
        Fd is not a valid descriptor.

    EINVAL
        Fd refers to a socket, not to a file.

    EIO An I/O error occurred while reading from or writing to the file system.

SEE ALSO
sync(2), sync(8), update(8), the GS/OS Reference Manual.

HISTORY
The fsync function call appeared in 4.2BSD.