AIO_WAITCOMPLETE(2) FreeBSD システムコールマニュアル AIO_WAITCOMPLETE(2)
名称
aio_waitcomplete − 非同期入出力要求の完了までの待機 |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <aio.h> int |
aio_waitcomplete(struct aiocb **iocbp, struct timespec *timeout); |
解説 |
aio_waitcomplete() システムコールは非同期入出力の完了まで待ちます。完了次 第、 aio_waitcomplete() はその関数の結果を返し、元の要求に関連する構造体 へのポインタを iocbp に設定します。もし、 aio_waitcomplete() 関数が呼び出 される前に非同期入出力要求が完了していた場合には、完了した要求の結果を即 座に返します。 timeout が NULL ポインタでない場合、それは非同期入出力要求が完了するまで 待機する最大時間を指定します。 timeout が NULL ポインタの場合は、 aio_waitcomplete() は無期限に待機します。ポーリングする場合は、引数 timeout は NULL ではなく、0 の値を持つ timeval 構造体を指すようにするべき です。 aio_waitcomplete() システムコールは aio_return() の役割もします。従って、 制御ブロックは iocbp で返されているので、 aio_return() を呼び出すべきでは ありません。 |
戻り値
非同期入出力要求が完了した場合、 iocbp に元の要求から渡された制御ブロック を指すポインタを設定し、 read(2), write(2), fsync(2) で述べられているのと 同様の状態を返します。失敗した場合、 aio_waitcomplete() は -1 を返 し、iocbp に NULL を設定します。そして、 errno にエラーの状況を設定しま す。 |
エラー
aio_waitcomplete() システムコールは次の場合に失敗します: |
[EINVAL]
指定された制限時間が無効です。 [EAGAIN] [EINTR] [EWOULDBLOCK] [EINPROGRESS] 関連項目 |
aio_cancel(2), aio_error(2), aio_read(2), aio_return(2), aio_suspend(2), aio_write(2), fsync(2), read(2), write(2), aio(4) |
規格
aio_waitcomplete() システムコールは FreeBSD 特有の拡張です。 |
歴史
aio_waitcomplete() システムコールは FreeBSD 4.0 ではじめて登場しました。 |
作者
aio_waitcomplete() システムコールとこのマニュアルページは Christopher M Sedore 〈cmsedore@maxwell.syr.edu〉 が作成しました。 FreeBSD 10.0 January 19, 2000 FreeBSD 10.0 |