AIO_SUSPEND(2)

名称
aio_suspend - 非同期入出力操作完了、またはタイムアウト経過まで延期する (REALTIME)

ライブラリ
libc

書式
<aio.h> int aio_suspend(const struct aiocb * const iocbs[], int niocb, const struct timespec * timeout)

解説
指定の非同期入出力要求のうち少なくとも 1 つが完了するか、 timeout が経過するまで aio_suspend() システムコールは呼び出しプロセスを延期します。

iocbs 引数は、非同期入出力要求への niocb ポインタの配列です。 NULL が入っている配列メンバはそのまま無視されます。

timeout が NULL ポインタでない場合、それは延期する時間の最大間隔を指定します。 timeout が NULL ポインタの場合、無期限に延期します。 ポーリングするためには timeout は値 0 の timespec 構造体を指しているべきです。

戻り値
指定された 1 つ以上の非同期入出力要求が完了すると aio_suspend() は 0 を返します。 そうでない場合は -1 を返し、後述するように errno がエラー状態を示すためにセットされます。

エラー
aio_suspend() システムコールは次の場合に失敗します:

[EAGAIN]
    入出力要求がどれも完了しないうちに timeout が時間切れになりました。

[EINVAL]
    iocbs 引数に AIO_LISTIO_MAX を越える非同期入出力要求が入っているか、または少なくとも 1 つの要求が 有効ではありません。

[EINTR]
    延期はシグナルによって割り込みされました。

関連項目
aio_cancel(2), aio_error(2), aio_return(2), aio_waitcomplete(2), aio_write(2), aio(4)

規格
aio_suspend() システムコールは p1003.1 標準に適合しています。

歴史
aio_suspend() システムコールは FreeBSD 3.0 ではじめて登場しました。

作者
このマニュアルページは Wes Peters <wes@softweyr.com> が作成しました。