fdatasync()

Синхронизировать данные файла

Прототип:

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

Аргументы:

filedes
Дескриптор файла, данные которого необходимо синхронизировать.

Библиотека:

libc

Описание:

Функция fdatasync() принудительно завершает все операции ввода/вывода в очереди для файла, определяемого файловым дескриптором filedes, синхронизируя данные файла. Функция блокируется до завершения.

Данная функция похожа на fsync() за исключением того, что fsync() также гарантирует целостность информации о файле, такой как режим доступа и время модификации.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Указанный filedes не является корректным файловым дескриптором, открытым для записи.
EINVAL
Реализация не поддерживает синхронизационный ввод/вывод для файла.
ENOSYS
Функция fdatasync() не поддерживается файловой системой, содержащей filedes.

Классификация:

POSIX 1003.1 Synchronous Input/Output

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

aio_fsync(), close(), fcntl(), fsync(), open(), read(), sync(), write()




Предыдущий раздел: Описание API системной библиотеки