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 がヌルポインタでない場合、それは延期する時間の最大インターバルを指定します。 timeout がヌルポインタの場合、無期限に延期します。ポーリングするためには timeout は値 0 の timespec 構造体を指しているべきです。

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

関連項目
aio_cancel(2), aio_error(2), aio_read(2), aio_suspend(2), aio_write(2)

エラー
aio_suspend() 関数は次の場合に失敗します。

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

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

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

規格
aio_suspend() は p1003.2 標準に準拠しています。

歴史
aio_suspend 関数は FreeBSD 3.0 ではじめて登場しました。

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