Man page - lio_listio(3)

Packages contains this manual

Available languages:

en ja ru ro

Manual

LIO_LISTIO

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

名 前

lio_listio - リ ス ト の I/O リ ク エ ス ト を 開 始 す る

書 式

#include <aio.h>

int lio_listio(int mode , struct aiocb *const aiocb_list [],
int
nitems , struct sigevent * sevp );

-lrt で リ ン ク す る 。

説 明

lio_listio () 関 数 は 、 配 列 aiocb_list で 指 定 さ れ た I/O 操 作 の リ ス ト を そ れ ぞ れ 開 始 す る 。

mode 引 数 に は 以 下 の い ず れ か の 値 を 指 定 す る 。
LIO_WAIT

全 て の 操 作 が 完 了 す る ま で 、 呼 び 出 し は 停 止 (block) す る 。 sevp 引 数 は 無 視 さ れ る 。

LIO_NOWAIT

I/O 操 作 は 処 理 を 行 う た め の キ ュ ー に 入 れ ら れ 、 呼 び 出 し は 直 ち に 返 る 。 全 て の I/O 操 作 が 完 了 す る と 、 sevp 引 数 で 指 定 し た 非 同 期 通 知 が 行 わ れ る 。 詳 細 は sigevent (7) を 参 照 。 sevp が NULL の 場 合 、 非 同 期 通 知 は 行 わ れ な い 。

aiocb_list 引 数 は 、 I/O 操 作 を 指 定 す る aiocb 構 造 体 へ の ポ イ ン タ ー の 配 列 で あ る 。 指 定 さ れ た 操 作 の 実 行 順 序 は 規 定 さ れ て い な い 。 nitems 引 数 は 、 配 列 aiocb_list の 大 き さ を 指 定 す る 。 aiocb_list 内 の ヌ ル ポ イ ン タ ー は 無 視 さ れ る 。

aiocb_list の 各 制 御 ブ ロ ッ ク で は 、 aio_lio_opcode フ ィ ー ル ド で 開 始 す る I/O 操 作 を 指 定 す る 。 aio_lio_opcode に は 以 下 の 値 が 指 定 で き る 。
LIO_READ

読 み 出 し 操 作 を 開 始 す る 。 操 作 は キ ュ ー に 入 れ ら れ 、 こ の 制 御 ブ ロ ッ ク を 指 定 し て aio_read (3) の 呼 び 出 し が 行 わ れ る 。

LIO_WRITE

書 き 込 み 操 作 を 開 始 す る 。 操 作 は キ ュ ー に 入 れ ら れ 、 こ の 制 御 ブ ロ ッ ク を 指 定 し て aio_write (3) の 呼 び 出 し が 行 わ れ る 。

LIO_NOP

こ の 制 御 ブ ロ ッ ク を 無 視 す る 。

各 制 御 ブ ロ ッ ク の 残 り の フ ィ ー ル ド は 、 aio_read (3) や aio_write (3) の 場 合 と 同 じ 意 味 を 持 つ 。 各 制 御 ブ ロ ッ ク の aio_sigevent フ ィ ー ル ド は 、 個 々 の I/O 操 作 で 通 知 方 法 を 指 定 す る の に 使 用 さ れ る ( sigevent (7) 参 照 )。

返 り 値

mode が LIO_NOWAIT の 場 合 、 lio_listio () は 全 て の 操 作 が 正 常 に キ ュ ー に 入 れ ら れ た 場 合 に 0 を 返 す 。 そ う で な い 場 合 は 、 -1 が 返 り 、 errno に エ ラ ー を 示 す 値 が 設 定 さ れ る 。

mode が LIO_WAIT の 場 合 、 lio_listio () は 全 て の 操 作 が 正 常 に 完 了 し た 場 合 に 0 を 返 す 。 そ う で な い 場 合 は 、 -1 が 返 り 、 errno に エ ラ ー を 示 す 値 が 設 定 さ れ る 。

lio_listio () の 返 り 値 か ら 得 ら れ る 情 報 は 、 関 数 呼 び 出 し 自 体 に 関 す る も の だ け で あ り 、 個 々 の I/O 操 作 に 関 す る 情 報 は 得 ら れ な い 。 個 々 の I/O 操 作 は 失 敗 す る こ と が あ る が 、 こ れ に よ り 他 の I/O 操 作 が 完 了 し な く な る と い っ た こ と は な い 。 aio_error (3) を 使 う と 、 aiocb_list の 個 々 の I/O 操 作 の ス テ ー タ ス を 知 る こ と が で き る 。 あ る I/O 操 作 が 完 了 す る と 、 そ の 終 了 ス テ ー タ ス は aio_return (3) を 使 う こ と で 取 得 で き る 。 個 々 の I/O 操 作 は aio_read (3) や aio_write (3) に 書 か れ て い る 理 由 で 失 敗 す る 場 合 が あ る 。

エ ラ ー

lio_listio () 関 数 は 以 下 の 理 由 で 失 敗 す る 。

EAGAIN

リ ソ ー ス が 足 り な い 。

EAGAIN

nitems で 指 定 さ れ た 数 の I/O 操 作 を 行 う と 、 非 同 期 I/O 操 作 の 数 が 上 限 AIO_MAX を 超 え て し ま う 状 況 で あ っ た 。

EINTR

mode が LIO_WAIT で 、 全 て の I/O 操 作 が 完 了 す る 前 に シ グ ナ ル が 捕 捉 さ れ た 。 signal (7) 参 照 。 (非 同 期 I/O の 完 了 通 知 に 使 用 さ れ る シ グ ナ ル の 場 合 も こ れ に 該 当 す る )。

EINVAL

mode が 不 正 で あ る か 、 nitems が 上 限 AIO_LISTIO_MAX を 超 え て い る 。

EIO

aiocb_list で 指 定 さ れ た 操 作 の 中 に 失 敗 し た も の が あ っ た 。 ア プ リ ケ ー シ ョ ン は 、 aio_return (3) を 使 用 し て 、 個 々 の 操 作 の ス テ ー タ ス を 確 認 す る こ と が で き る 。

lio_listio が エ ラ ー EAGAIN , EINTR , EIO で 失 敗 し た 場 合 、 aiocb_list で 指 定 し た 操 作 の い く つ か は 開 始 さ れ て い る こ と が あ る 。 lio_listio が 他 の 理 由 で 失 敗 し た 場 合 に は 、 ど の I/O 操 作 も 開 始 さ れ て い な い 。

バ ー ジ ョ ン

The lio_listio () 関 数 は glibc 2.1 以 降 で 利 用 で き る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-28405-1.png

準 拠

POSIX.1-2001, POSIX.1-2008.

注 意

使 用 前 に 制 御 ブ ロ ッ ク を 0 で 埋 め る の は 良 い 考 え で あ る 。 I/O 操 作 の 実 行 中 は 制 御 ブ ロ ッ ク を 変 更 し て は な ら な い 。 デ ー タ の 読 み 書 き 先 の バ ッ フ ァ ー 領 域 に I/O 操 作 の 実 行 中 に ア ク セ ス し て は な ら な い 。 さ も な い と 、 ど の よ う な 結 果 に な る か 分 か ら な い 。 ま た 、 関 係 す る メ モ リ ー 領 域 も 有 効 な 状 態 の ま ま に し て お か な け れ ば な ら な い 。

同 じ aiocb 構 造 体 を 指 定 し て 同 時 に 複 数 の I/O 操 作 を 行 っ た 場 合 、 ど の よ う な 結 果 に な る か は 不 定 で あ る 。

関 連 項 目

aio_cancel (3), aio_error (3), aio_fsync (3), aio_return (3), aio_suspend (3), aio_write (3), aio (7)

こ の 文 書 に つ い て

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