総合手引 | セクション 2 | English | オプション |
#include <aio.h>
iocb->aio_fildes 用に O_APPEND が設定されている場合、 aio_write() 操作は呼び出しが行われたのと同じ順序で ファイルの末尾に追加されます。 O_APPEND がファイル記述子用に設定されていない場合、書込み操作はファイルの先頭に iocb->aio_offset を加えた絶対位置で行われます。
_POSIX_PRIORITIZED_IO が定義されており、かつ記述子がそれをサポートしている場合、 待ち行列に入れられた操作は呼び出しプロセスの優先順位から iocb->aio_reqprio を減算したのに等しい優先順位にされます。
iocb ポインタは待ち行列に入れられた操作の戻り値、またはエラー状態を 判定するために、 aio_return() および aio_error() への引数として使用できます。
要求が正常に待ち行列に入れられると、コンテキストとして要求の間に iocb->aio_offset の値が修正できるので、 この値は要求が待ち行列に入れられた後に参照されてはなりません。
正しくないコンテキスト情報がカーネルに引き渡されるのを回避するために、 非同期入出力制御バッファ iocb は、 aio_write() システムコールの前に 0 にする必要があります。
要求が待ち行列に入れられた後、要求が完了するまでは 非同期入出力制御ブロック構造体、 またはバッファの内容を修正することは許されません。
iocb->aio_offset 内のファイルオフセットが iocb->aio_fildes 用のオフセット最大を越える場合は入出力は行われません。
[EAGAIN] | |
システムリソースの制限のために要求は待ち行列に入れられませんでした。 | |
[ENOSYS] | |
aio_write() システムコールはサポートされていません。 | |
次の状態は aio_write() システムコールが行われたときに同期的に検出でき、 その後いつでも非同期的に検出できます。 これらが呼び出し時に検出された場合に aio_write() は -1 を返し errno を適切に設定します。 そうでない場合は aio_return() システムコールが戻り値 -1 で呼び出される必要があり、 errno で返されている実際の値を判定するために aio_error() が呼び出される必要があります。
[EBADF] | |
iocb->aio_fildes 引数が無効であるか、書込みにはオープンされていません。 | |
[EINVAL] | |
オフセット iocb->aio_offset が有効でない、 iocb->aio_reqprio によって指定される優先順位が 有効な優先順位でない、または iocb->aio_nbytes によって指定されるバイト数が有効ではありません。 | |
要求が正常に待ち行列に入れられたものの、 後でキャンセルされるかエラーが発生した場合、 aio_return() システムコールによって返された値は write(2) システムコールごとのものであり、 aio_error() システムコールによって返された値は write(2) システムコールから返されたエラーの 1 つであるか、または次の 1 つです。
[EBADF] | |
iocb->aio_fildes 引数は書込みについては無効です。 | |
[ECANCELED] | |
要求は aio_cancel() の呼び出しによって明示的にキャンセルされました。 | |
[EINVAL] | |
オフセット iocb->aio_offset は無効です。 | |
AIO_WRITE (2) | June 2, 1999 |
総合手引 | セクション 2 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.
“ | This philosophy, in the hands of amateurs, leads to inexplicably mind-numbing botches like the existence of two programs, “head” and “tail,” which print the first part or the last part of a file, depending. Even though their operations are duals of one another, “head” and “tail” are different programs, written by different authors, and take different options! | ” |
— The Unix Haters' handbook |