fsync()

Синхронизировать состояние файла в памяти с состоянием на диске

Прототип:

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

Аргументы:

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

Библиотека:

libc

Описание:

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

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

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

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

Коды ошибок:

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

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

POSIX 1003.1 File Synchronization

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

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

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




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