cc [ flag... ] file... -lrt [ library... ] #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:
EBADF The fildes argument is not a valid file descriptor open for writing.
EINVAL The system does not support synchronized I/O for this file.
ENOSYS 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(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
fcntl(2), open(2), read(2), write(2), fsync(3C), aio_fsync(3RT), fcntl.h(3HEAD), attributes(5), standards(5)