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