EN JA
AIO_SUSPEND(2)
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 Peters <wes@softweyr.com>によって書かれました。
June 2, 1999 FreeBSD