Manpages

名 前

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/ に 書 か れ て い る 。