AIO_CANCEL

Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index JM Home Page
 

名前

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 以降で利用できる。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
aio_cancel() Thread safety MT-Safe
 

準拠

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 プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

リクエスト   キャンセル   cancel   非同期   完了   操作   制御   ブロック   通常   return   実装   確認   struct   aiocb   記述   リクエ   構造体   通知   返り値   ステータス   開始   不定   正常   個々   原因

Linux マニュアル 一覧

関連するコマンド・関数

aio_error.3   aio_return.3   io_cancel.2   pthread_cancel.3   pthread_setcancelstate.3   pthread_setcanceltype.3
 

Index

名前
書式
説明
返り値
エラー
バージョン
属性
準拠
例
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:04 GMT, October 11, 2026