Man page - io_getevents(2)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

IO_GETEVENTS

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

名 前

io_getevents - 完 了 キ ュ ー か ら 非 同 期 I/O イ ベ ン ト を 読 み 出 す

書 式

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

int io_getevents(aio_context_t ctx_id , long min_nr , long nr ,
struct io_event *
events , struct timespec * timeout );

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

説 明

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

The io_getevents () system call attempts to read at least min_nr events and up to nr events from the completion queue of the AIO context specified by ctx_id .

The timeout argument specifies the amount of time to wait for events, and is specified as a relative timeout in a structure of the following form:

struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds [0 .. 999999999] */
};

The specified time will be rounded up to the system clock granularity and is guaranteed not to expire early.

Specifying timeout as NULL means block indefinitely until at least min_nr events have been obtained.

返 り 値

成 功 す る と 、 io_getevents () は 読 み 出 し た イ ベ ン ト 数 を 返 す 。 timeout 時 間 が 経 過 し た 場 合 は 、 0 も し く は min_nr 未 満 の 値 が 返 る 。 呼 び 出 し が シ グ ナ ル ハ ン ド ラ ー に 割 り 込 ま れ た 場 合 に も 、 0 も し く は min_nr 未 満 の 値 が 返 る こ と が あ る 。

失 敗 時 の 返 り 値 に つ い て は 、 「 注 意 」 の 節 を 参 照 す る こ と 。

エ ラ ー

EFAULT

events ま た は timeout が 無 効 な ポ イ ン タ ー で あ る 。

EINTR

シ グ ナ ル ハ ン ド ラ ー に よ り 割 り 込 ま れ た 。 signal (7) 参 照 。

EINVAL

ctx_id が 無 効 で あ る 。 も し く は 、 min_nr ま た は nr が 範 囲 外 の 値 で あ る 。

ENOSYS

io_getevents () が こ の ア ー キ テ ク チ ャ ー で は 実 装 さ れ て い な い 。

バ ー ジ ョ ン

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

準 拠

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

注 意

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

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

バ グ

無 効 な ctx_id を 指 定 し た 場 合 、 エ ラ ー EINVAL が 生 成 さ れ ず 、 セ グ メ ン テ ー シ ョ ン 違 反 (segmentation fault) が 発 生 す る 場 合 が あ る 。

関 連 項 目

io_cancel (2), io_destroy (2), io_setup (2), io_submit (2), aio (7), time (7)

こ の 文 書 に つ い て

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