aio_fsync -
非同期ファイルを同期させる
#include <aio.h>
int aio_fsync(int op, struct aiocb *aiocbp);
-lrt でリンクする。
aio_fsync() 関数は、
aiocbp->aio_fildes
で関連付けられているまだ
完了していない全ての非同期
I/O 操作を同期させる。 (
aiocb 構造体の説明は
aio(7) を参照)
より正確に言うと、
op が
O_SYNC
の場合、現在キューに入れられている全て
の I/O 操作は、
fsync(2)
が呼ばれたかのように完了されるだろう。
また
op が
O_DSYNC
の場合、この呼び出しは
fdatasync(2)
の非同期版となる。
この関数はリクエストを行うだけである点に注意すること。
I/O
の完了の待ち合わせは行わない。
aiocbp
で指される構造体のフィールドのうち、この呼び出しで
aio_fildes
以外に使用されるのは
aio_sigevent フィールド (
sigevent
構造体、説明は
sigevent(7)
参照)
のみである。このフィールドは、完了時の非同期通知に使用
したいタイプを示す。
その他のフィールドは無視される。
成功した場合
(同期リクエストをキューに入れるのに成功した場合)、
この関数は 0 を返す。
エラーの場合、-1
が返され、
errno
が適切に設定される。
- EAGAIN
- リソースが足りない。
- EBADF
-
aio_fildes
が書き込みのためにオープンされた有効なファイルディスクリプターではない。
- EINVAL
- このファイルでは同期
I/O
がサポートされていない。
または op が O_SYNC でも
O_DSYNC でもない。
- ENOSYS
-
aio_fsync()
は実装されていない。
The
aio_fsync() 関数は glibc 2.1
以降で利用できる。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
aio_fsync() |
Thread safety |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
aio_cancel(3),
aio_error(3),
aio_read(3),
aio_return(3),
aio_suspend(3),
aio_write(3),
lio_listio(3),
aio(7),
sigevent(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。