aio_suspend

Autres langues

Langue: ja

Version: 2003-11-14 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

名前

aio_suspend - 非同期 I/O 操作またはタイムアウトを待つ

書式

 
 #include <aio.h>
 
 int aio_suspend(const struct aiocb * const cblist[],
 
int n, const struct timespec *timeout);

説明

aio_suspend() 関数は、長さ n のリスト cblist に含まれる非同期 I/O リクエストのうち少なくとも 1 つが完了するか、 シグナルが配送されるか、 timeout が NULL でなく、かつその時間が過ぎるまで、 呼び出したプロセスを停止 (suspend) する。

リストの各アイテムは、NULL (これは無視される) か、 aio_read(3), aio_write(3), lio_listio(3) を使って I/O が開始された制御ブロックへのポインタでなければならない。

CLOCK_MONOTONIC がサポートされる場合、 このクロックを使ってタイムアウトの間隔が計測される。

返り値

指示されたリクエストの 1 つが完了した後にこの関数が返る場合は、0 を返す。 それ以外の場合は -1 を返して、 errno を適切に設定する。

エラー

EAGAIN
指示された操作のどれも完了しないうちに、 この呼び出しがタイムアウトによって終了させられた。
EINTR
この呼び出しがシグナルによって終了させられた。 (このシグナルは、完了を待っていた操作のいずれかの完了シグナルの可能性もある。)

準拠

POSIX.1-2001

注意

時間間隔が 0 であることを指定する NULL ではない timeout を使って、ポーリングを行うこともできる。

関連項目

aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3), aio_write(3)