JM プロジェクトは、主に Linux 関連のマニュアルページの日本語ページを翻訳・公開しています。
... でリンクする。 説明 aio_suspend () 関数は、以下のいずれかが発生するまで 呼び出したスレッドの実行を停止 (suspend) する。 * aiocb_list リスト内の非同期 I/O リクエストのうち、少なくとも一つが完了した。 * シグナルが配送された。 * timeout が NULL でない場 ... 合に、指定した時間が経過した ( timespec 構造体の詳細は nanosleep (2) を参照)。 nitems 引数は aiocb_list の要素数を指定する。 aiocb_list が指すリストの各要素は、NULL (これは無視される) か、 aio_read (3), aio_write (3), lio ... _listio (3) を使って I/O が開始された 制御ブロックへのポインターでなければならない。 ( aiocb 構造体の説明は aio (7) を参照) CLOCK_MONOTONIC がサポートされる場合、 このクロックを使ってタイムアウトの 間隔が計測される ... ... truct sigevent * sevp ); -lrt でリンクする。 説明 lio_listio () 関数は、配列 aiocb_list で指定された I/O 操作の リストをそれぞれ開始する。 mode 引数には以下のいずれかの値を指定する。 LIO_WAIT 全ての操作が完 ... ると、 sevp 引数で指定した非同期通知が 行われる。詳細は sigevent (7) を参照。 sevp が NULL の場合、 非同期通知は行われない。 aiocb_list 引数は、I/O 操作を指定する aiocb 構造体へのポインター の配列である。指定された操作の実行順序は規定されていない。 nite ... ms 引数は、配列 aiocb_list の大きさを指定する。 aiocb_list 内のヌルポインターは無視される。 aiocb_list の各制御ブロックでは、 aio_lio_opcode フィ ... ... 了していない I/O リクエストのキャンセルを試みる。 lio_listio (3) 一回の関数呼び出しで複数の I/O リクエストをキューに入れる。 aiocb ("非同期 I/O 制御ブロック (asynchronous I/O control block)") 構造体は、I/O 操作を制御するパラメーターを定義する。この型の引 ... 数は上記 の全ての関数で使用されている。この構造体は以下の通りである。 #include < aiocb.h > struct aiocb { /* The order of these fields is implementation-dependent */ int aio_fildes; /* File descriptor */ off_t ... に対する拡張が提供されている。 aio_init (3) glibc の POSIX AIO 実装の動作を調整するパラメーターを設定する。 エラー EINVAL aiocb 構造体の aio_reqprio フィールドが、0 より小さいか、 sysconf(_SC_AIO_PRIO_DELTA_MAX) が返す上限よりも大きかった。 バージョン ... ... 記載された I/O リクエストを キューに入れる。この関数は read (2) の非同期版である。 呼び出し read(fd, buf, count) の各引数は aiocb が指す構造体の aio_fildes , aio_buf , aio_nbytes に (この順序で) 対応する ( aiocb 構造体の説明は aio (7) を参照)。 データの ... 読み込みは、ファイルオフセットに関係なく、絶対位置 aiocbp->aio_offset を開始点として行われる。呼び出しの後のファイルオフセットは規定されていない。 「非同期」とは「リクエストがキュ ... も知れない。 aio_error (3) を使うことで完了したかをテストできる。 完了した I/O 操作の返り値は aio_return (3) で取得できる。 aiocbp->aio_sigevent を適切に設定することで、 I/O 完了の非同期通知は受けることもできる。詳細は sigevent (7) を参照。 _POSIX_PRIO ... ... 記載された I/O リクエストをキューに入れる。この関数は write (2) の非同期版である。 呼び出し write(fd, buf, count) の各引数は aiocb が指す構造体の aio_fildes , aio_buf , aio_nbytes に (この順序で) 対応する ( aiocb 構造体の説明は aio (7) を参照)。 O_APPEN ... D が設定されない場合、ファイルオフセットに関係なく、 データは絶対位置 aiocbp->aio_offset を開始点として書き込まれる。 O_APPEND が設定されている場合、データはファイルの末尾に、 aio_write () の呼び出し ... も知れない。 aio_error (3) を使うことで完了したかをテストできる。 完了した I/O 操作の返り値は aio_return (3) で取得できる。 aiocbp->aio_sigevent を適切に設定することで、 I/O 完了の非同期通知は受けることもできる。詳細は sigevent (7) を参照。 _POSIX_PRIO ... ... _error () 関数は aiocbp で指された制御ブロックでの非同期 I/O リクエス トのエラー状態を返す。( aiocb 構造体の説明は aio (7) を参照) 返り値 この関数 ... 期の read (2), write (2), fsync (2), fdatasync (2) の呼び出しの場合で errno 変数に格納されるのと同じ値になる。 エラー EINVAL aiocbp が、まだ返り値 (return status) ( aio_return (3) を参照) が取得されていない非同期 I/O リクエストの制御ブロックを指していな ... ... る。 説明 aio_return () 関数は aiocbp で指された制御ブロックにおける非同期 I/O リクエストの最終的な返り値を返す。 ( aiocb 構造体の説明は aio (7) を参照) この関 ... no が適切に設定される。 非同期 I/O 操作が完了していない場合、 aio_return () の返り値とその影響は不定である。 エラー EINVAL aiocbp が、返り値がまだ取得されていない非同期 I/O リクエストの 制御ブロックを指していない。 ENOSYS aio_return () は実装されていな ... ... ) 関数は、 aiocbp->aio_fildes で関連付けられているまだ 完了していない全ての非同期 I/O 操作を同期させる。 ( aiocb 構造体の説明は aio (7) を参 ... fdatasync (2) の非同期版となる。 この関数はリクエストを行うだけである点に注意すること。 I/O の完了の待ち合わせは行わない。 aiocbp で指される構造体のフィールドのうち、この呼び出しで aio_fildes 以外に使用されるのは aio_sigevent フィールド ( sigevent 構造 ... ... aio_cancel () 関数は、ファイルディスクリプター fd についての完了して いない非同期 I/O リクエストをキャンセルしようとする。 aiocbp が NULL の場合、そのような全てのリクエストがキャンセルされる。 aiocbp が NULL でない場合、 aiocbp で指された制御ブロックで ... 記述されたリクエ ストのみがキャンセルされる。( aiocb 構造体の説明は aio (7) を参照) キャンセルされたリクエストに対して、通常の非同期通知が起こる ( aio (7) と sigevent (7) を参 ... io_cancel () は通常の I/O 操作の実行後と同じように終了する。 (この場合、 aio_error (3) はステータス EINPROGRESSS を返す)。 aiocbp が NULL でなく、かつ fd が非同期操作が開始されたファイルディスクリプターと異なる場合、 生じる結果は不定である。 どの操作を ... 日本語の文書やマニュアルを配布している個人/プロジェクトへのリンクです。