FDATASYNC(3C) Standard C Library Functions FDATASYNC(3C)

fdatasync - synchronize a file's data

#include <unistd.h>
int fdatasync(int fildes);

The fdatasync() function forces all currently queued I/O operations associated with the file indicated by file descriptor fildes to the synchronized I/O completion state.

The functionality is as described for fsync(3C) (with the symbol _XOPEN_REALTIME defined), with the exception that all I/O operations are completed as defined for synchronised I/O data integrity completion.

If successful, the fdatasync() function returns 0. Otherwise, the function returns −1 and sets errno to indicate the error. If the fdatasync() function fails, outstanding I/O operations are not guaranteed to have been completed.

The fdatasync() function will fail if:


The fildes argument is not a valid file descriptor open for writing.


The system does not support synchronized I/O for this file.


The function fdatasync() is not supported by the system.

In the event that any of the queued I/O operations fail, fdatasync() returns the error conditions defined for read(2) and write(2).

See attributes(7) for descriptions of the following attributes:

Interface Stability Committed
MT-Level Async-Signal-Safe
Standard See standards(7).

fcntl(2), open(2), read(2), write(2), aio_fsync(3C), fsync(3C), fcntl.h(3HEAD), attributes(7), standards(7)

February 5, 2008 OmniOS