IO_CANCEL

Section: Linux Programmer's Manual (2)
Updated: 2020-12-21
Index JM Home Page
 

名前

io_cancel - 未処理の非同期 I/O 操作の取り消し  

書式

#include <linux/aio_abi.h>          /* 必要な型の定義 */

int io_cancel(aio_context_t ctx_id, struct iocb *iocb,
              struct io_event *result);

: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。  

説明

注意:このページは生の Linux のシステムコールのインターフェースについて説明している。 libaio で提供されるラッパー関数では ctx_id 引数に違う型が使われている。「注意」を参照。

io_cancel() システムコールは、過去に io_submit(2) を使って登録された非同期 I/O (AIO) 操作の取り消しを行おうとする。 iocb 引数は取り消したい操作が示し、 ctx_id 引数は、取り消しを行う操作が登録された AIO コンテキストである。操作の取り消しに成功すると、対象のイベントは result で指されたメモリーに コピーされる (このとき、完了キューへの移動は行われない)。  

返り値

成功した場合、 io_cancel() は 0 を返す。 失敗時の返り値については、「注意」の節を参照すること。  

エラー

EAGAIN
指定された iocb の取り消しが行われなかった。
EFAULT
データ構造の中に無効なデータを指しているものがある。
EINVAL
ctx_id で指定された AIO コンテキストが無効である。
ENOSYS
io_cancel() はこのアーキテクチャーでは実装されていない。
 

バージョン

非同期 I/O システムコールは Linux 2.5 で初めて登場した。  

準拠

io_cancel() は Linux 固有であり、移植を想定したプログラムで使用すべきではない。  

注意

glibc はこのシステムコールのラッパー関数を提供していない。 syscall(2) を使ってこのシステムコールを起動することができる。 しかし、たいていは、このシステムコールを呼び出したいのではなく、
 libaio が提供している io_cancel ラッパー関数を呼び出したい 場合がほとんどであろう。

libaio のラッパー関数では ctx_id 引数に別の型 (io_context_t) が使われることに注意すること。 また、libaio のラッパー関数は、エラーの通知が通常の C ライブラリの 慣習にしたがっておらず、エラーの場合には負のエラー番号 (エラーの節に列 挙されている値の一つを負にしたもの) が返り値となる点にも注意すること。 syscall(2) 経由でシステムコールを起動すると、返り値は通常のエラー通 知の慣習に したがってものとなり、エラーの場合には -1 が返り、 errno にエラーを示す (正の) 値が設定される。  

関連項目

io_destroy(2), io_getevents(2), io_setup(2), io_submit(2), aio(7)  

この文書について

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


関連キーワード

エラー, 注意, cancel, CANCEL, 関数, ctx, 操作, 取り消し, libaio, iocb 

Index

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

This document was created by man2html, using the manual pages.
Time: 13:30:30 GMT, January 09, 2022