Выполнить асинхронную файловую синхронизацию
#include <aio.h>int aio_fsync( int op,struct aiocb *aiocbptr );
libc
Функция aio_fsync() выполняет асинхронную файловую синхронизацию всех операций ввода/вывода, связанных с файловым дескриптором, что синхронизирует состояние ввода/вывода.
Если функция успешно завершается, гарантируется завершение только тех операций ввода/вывода, которые были поставлены в очередь во время вызова. Синхронизированное завершение последующих операций ввода/вывода для файлового дескриптора не гарантируется. Если операция, которая ставит в очередь aio_fsync(), завершается неудачно, выполнение оставшихся операций ввода/вывода не гарантируется.
Можно передать аргумент aiocbptr в функции aio_error() или aio_return(), чтобы определить статус ошибки и статус возвращения асинхронной операции.
O_DSYNC
или O_SYNC
. Если какая-либо из операций ввода/вывода в очереди завершилась неудачно, aio_fsync() возвращает причину возникновения ошибки, определенную для read() и write(). Ошибка возвращается в статусе ошибки для асинхронной операции fsync(), значение которой можно получить с помощью aio_error().
POSIX 1003.1 Asynchronous Input/Output
При первом вызове функций aio_*() создается пул потоков, что делает процесс многопоточным, если он не был таковым. Пул потоков не уничтожится до тех пор, пока процесс не завершится.
aio_cancel(), aio_error(), aio_read(), aio_return(), aio_suspend(), aio_write(), struct aiocb, fdatasync(), fsync(), read(), write()
Предыдущий раздел: Описание API системной библиотеки