システムインタフェース

POSIX 非同期入出力

POSIX 非同期入出力は、aiocb 構造体を使用して行います。aiocb 制御ブロッキングは、各非同期入出力要求を識別し、すべての制御情報を持っています。制御ブロッキングは、一度に 1 つの要求だけに使用でき、その要求が完了すると再使用できます。

一般的な POSIX 非同期入出力操作は、aio_read(3RT) または aio_write(3RT) 呼び出しによって開始します。ポーリングまたはシグナルを使用して、操作の完了を判断できます。シグナルを操作の完了に使用する場合は、各操作に一意にタグを付けることができます。タグは生成されたシグナルの si_value 構成要素に戻されます (詳細は、siginfo(3HEAD) のマニュアルページを参照してください)。

aio_read(3RT)

aio_read(3RT) は、読み取り操作の開始のために非同期入出力制御ブロッキングを使用して呼び出します。

aio_write(3RT)

aio_write(3RT) は、書き込み操作の開始のために非同期入出力制御ブロッキングを指定して呼び出します。

aio_return(3RT)aio_error(3RT)

aio_return(3RT)aio_error(3RT)は、操作が完了しているとわかった後、それぞれ戻り値とエラー値を取得するために呼び出します。

aio_cancel(3RT)

aio_cancel(3RT) は、保留状態の操作を取り消すために非同期入出力制御ブロッキングを指定して呼び出します。

aio_fsync(3RT)

aio_fsync(3RT) は、指定したファイルで保留状態のすべての入出力操作に対する非同期の fsync(3C) または fdatasync(3RT) 要求を待ち行列に並べます。

aio_suspend(3RT)

aio_suspend(3RT) は、1 つ以上の先行する非同期入出力要求が同期して行われるかのように呼び出し側を一時停止します。