AIO_SUSPEND(2) | FreeBSD System Calls Manual | AIO_SUSPEND(2) |
名称
aio_suspend — 非同期 I/O 操作またはタイムアウトが完了するまでサスペンドする (REALTIME)ライブラリ
Standard C Library (libc, -lc)書式
#include < aio.h> int
aio_suspend( const struct aiocb *const iocbs[], int niocb, const struct timespec *timeout);
解説
aio_suspend() システムコールは、指定された非同期 I/O 要求の少なくとも 1 つが完了するか、シグナルが配信されるか、または timeout が、経過するまで、呼び出しているプロセスをサスペンドします。iocbs 引数は、非同期 I/O 要求への niocb ポインタの配列です。 NULL ポインタを含んでいる配列のメンバは、静かに無視されます。
timeout が NULL ポインタでないなら、それは、サスペンドする最大の間隔を指定します。 timeout が NULL ポインタであるなら、サスペンドは、無期限にブロックします。ポーリングを行うために、 timeout は、0 の値の timespec 構造体を指すべきです。
戻り値
指定された非同期 I/O 要求の 1 つ以上が完了しているなら、 aio_suspend() は、0 を返します。そうでなければ、-1 を返し、下記に列挙されるように、エラーを示す値を errno に設定します。エラー
aio_suspend() システムコールは、次の場合に失敗します:- [ EAGAIN]
- timeout が、あらゆる I/O が完了する前に、満了しました。
- [ EINVAL]
- iocbs 引数が、 AIO_LISTIO_MAX 非同期 I/O 要求するより多くを含んでいるか、または要求の少なくとも 1 つが有効ではありません。
- [ EINTR]
- サスペンドが、シグナルによって割り込まれした。
規格
aio_suspend() システムコールは、 IEEE Std 1003.1 (“POSIX.1”) 規約に適合するはずです。歴史
aio_suspend() システムコールは、 FreeBSD 3.0 ではじめて登場しました。作者
このマニュアルページは、 <wes@softweyr.com>によって書かれました。June 2, 1999 | FreeBSD |