LIO_LISTIO(2) FreeBSD システムコールマニュアル LIO_LISTIO(2)
名称
lio_listio − リスト指示の入出力 (リアルタイム) |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <aio.h> int |
lio_listio(int mode, struct aiocb * const [] list, int nent,struct sigevent *sig);
解説 |
lio_listio() 関数は 1 つの関数呼び出しで、リストの入出力要求を開始させま す。 list 引数は、それぞれの実行すべき操作を記述した nent 個の要素の aiocb 構造体の配列へのポインタです。 NULL 要素は無視されます。 それぞれの aiocb の aio_lio_opcode フィールドは実行されるべき操作を指定し ます。以下の操作がサポートされています: |
LIO_READ
まるで aio_read(2) の呼び出しかのように、データを読込みます。 LIO_NOP LIO_WRITE mode 引数が LIO_WAIT の場合には、 lio_listio() は全ての要求された操作が完 了するまで戻りません。 mode が LIO_NOWAIT の場合には、要求は非同期に処理 され、全ての操作が完了したときに sig によって指定されたシグナルが送られま す。 sig が NULL の場合には、呼び出したプロセスには入出力の完了が通知され ません。 要求が実行される順番は、指定されません。特に、0, 1, ..., nent−1 の順序で 実行される保証はありません。 戻り値 |
mode が LIO_WAIT の場合には、 lio_listio() 関数は成功して操作が完了すると 0 を返し、そうでなければ −1 を返します。 mode が LIO_NOWAIT の場合には、 lio_listio() 関数は成功して操作がキューに 入れられると 0 を返し、そうでなければ −1 を返します。 |
エラー
lio_listio() 関数は以下の場合に失敗します: |
[EAGAIN]
要求をキューに入れるために十分なリソースがありません。 [EAGAIN] [EINVAL] [EINTR] [EIO] 加えて、 lio_listio() 関数は aio_read(2) および aio_write(2) に記載されて いるあらゆる理由で失敗するかもしれません。 lio_listio() が成功した場合、または EAGAIN, EINTR, または EIO のエラー コードで失敗した場合には、幾つかの要求が既に開始されているかもしれませ ん。呼び出し側はそれぞれの aiocb のエラー状態を、個別に aio_error(2) を呼 び出すことによって、チェックするべきです。 関連項目 |
aio_error(2), aio_read(2), aio_write(2), read(2), write(2), aio(4) |
規格
lio_listio() 関数は IEEE Std 1003.1-2001 (‘‘POSIX.1’’) に適合しているはず です。 FreeBSD 10.0 January 12, 2003 FreeBSD 10.0 |