総合手引 | セクション 2 | English | オプション |
#include <aio.h>
それぞれの aiocb の aio_lio_opcode フィールドは実行されるべき操作を指定します。 以下の操作がサポートされています:
LIO_READ | まるで aio_read(2) の呼び出しかのように、データを読込みます。 |
LIO_NOP | 何の操作もしません。 |
LIO_WRITE | |
まるで aio_write(2) の呼び出しかのように、データを書込みます。 | |
mode 引数が LIO_WAIT の場合には、 lio_listio() は全ての要求された操作が完了するまで戻りません。 mode が LIO_NOWAIT の場合には、要求は非同期に処理され、全ての操作が完了したときに sig によって指定されたシグナルが送られます。 sig が NULL の場合には、呼び出したプロセスには入出力の完了が通知されません。
要求が実行される順番は、指定されません。特に、0, 1, ..., nent, Ns, -1 の順序で実行される保証はありません。
mode が LIO_NOWAIT の場合には、 lio_listio() 関数は成功して操作がキューに入れられると 0 を返し、 そうでなければ -1 を返します。
[EAGAIN] | |
要求をキューに入れるために十分なリソースがありません。 | |
[EAGAIN] | |
要求がシステムによる制限 AIO_MAX を超えさせます。 | |
[EINVAL] | |
mode 引数が LIO_WAIT または LIO_NOWAIT のどちらでもありません。または、 nent が AIO_LISTIO_MAX よりも大きいです。 | |
[EINTR] | |
恐らく完了する前に、シグナルがシステムコールに割り込みました。 | |
[EIO] | 1 つ以上の要求が失敗しました。 |
加えて、 lio_listio() 関数は aio_read(2) および aio_write(2) に記載されているあらゆる理由で失敗するかもしれません。
lio_listio() が成功した場合、または EAGAIN, EINTR, または EIO のエラーコードで失敗した場合には、幾つかの要求が 既に開始されているかもしれません。 呼び出し側はそれぞれの aiocb のエラー状態を、個別に aio_error(2) を呼び出すことによって、チェックするべきです。
LIO_LISTIO (2) | January 12, 2003 |
総合手引 | セクション 2 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | How do you pronounce UNIX ? You Nix ! | ” |