Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       aio_cancel - 完了していない非同期 I/O リクエストをキャンセルする

書式

       #include <aio.h>

       int aio_cancel(int fd, struct aiocb *aiocbp);

       -lrt でリンクする。

説明

       aio_cancel()  関数は、ファイルディスクリプタ fd についての完了して いない非同期 I/O リクエ
       ストをキャンセルしようとする。 aiocbp が NULL の場合、そのような全てのリクエストがキャンセ
       ルされる。 aiocbp が NULL でない場合、aiocbp で指された制御ブロックで記述されたリクエ スト
       のみがキャンセルされる。(aiocb 構造体の説明は aio(7) を参照)

       キャンセルされたリクエストに対して、通常の非同期通知が起こる (aio(7) と  sigevent(7)  を参
       照)。   リクエストの返り値   (aio_return(3))  は  -1  に設定され、  リクエストのエラー状態
       (aio_error(3)) は ECANCELED に設定される。  キャンセルできないリクエストの制御ブロックは変
       更されない。

       リクエストがキャンセルできない場合には、  aio_cancel() は通常の I/O 操作の実行後と同じよう
       に終了する。 (この場合、 aio_error(3) はステータス EINPROGRESSS を返す)。

       aiocbp が NULL  でなく、かつ  fd  が非同期操作が開始されたファイルディスクリプタと異なる場
       合、 生じる結果は不定である。

       どの操作をキャンセルできるかは、実装定義である。

返り値

       aio_cancel() 関数は以下のいずれかの値を返す。

       AIO_CANCELED
              全てのリクエストが正常にキャンセルされた。

       AIO_NOTCANCELED
              指定されたリクエストのうち少なくとも一つが、実行中のため キャンセルできなかった。こ
              の場合には、aio_error(3) を使って 個々のリクエストの状態を確認できる。

       AIO_ALLDONE
              呼び出しの前に全てのリクエストがすでに完了していた。

       -1     エラーが発生した。 errno を確認することでエラーの原因を知ることができる。

エラー

       EBADF  fd が有効なファイルディスクリプタでない。

       ENOSYS aio_cancel() は実装されていない。

バージョン

       aio_cancel() 関数は glibc 2.1 以降で利用できる。

準拠

       POSIX.1-2001, POSIX.1-2008.

       aio(7) を参照。

関連項目

       aio_error(3),  aio_fsync(3),  aio_read(3),  aio_return(3),  aio_suspend(3),  aio_write(3),
       lio_listio(3), aio(7)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。

                                            2012-05-08                              AIO_CANCEL(3)