Man page - aio_read(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

AIO_READ

名 前
書 式
説 明
返 り 値
エ ラ ー
バ ー ジ ョ ン
属 性
準 拠
注 意

関 連 項 目
こ の 文 書 に つ い て

名 前

aio_read - 非 同 期 で 読 み 込 む

書 式

#include <aio.h>

int aio_read(struct aiocb * aiocbp );

-lrt で リ ン ク す る 。

説 明

aio_read () 関 数 は 、 aiocbp が 指 す バ ッ フ ァ ー に 記 載 さ れ た I/O リ ク エ ス ト を キ ュ ー に 入 れ る 。 こ の 関 数 は read (2) の 非 同 期 版 で あ る 。 呼 び 出 し

read(fd, buf, count)

の 各 引 数 は aiocb が 指 す 構 造 体 の aio_fildes , aio_buf , aio_nbytes に (こ の 順 序 で ) 対 応 す る ( aiocb 構 造 体 の 説 明 は aio (7) を 参 照 )。

デ ー タ の 読 み 込 み は 、 フ ァ イ ル オ フ セ ッ ト に 関 係 な く 、 絶 対 位 置 aiocbp->aio_offset を 開 始 点 と し て 行 わ れ る 。 呼 び 出 し の 後 の フ ァ イ ル オ フ セ ッ ト は 規 定 さ れ て い な い 。

「 非 同 期 」 と は 「 リ ク エ ス ト が キ ュ ー に 入 れ ら れ た ら 、 こ の 呼 び 出 し は す ぐ に 返 る 」 と い う こ と で あ る 。 呼 び 出 し か ら 戻 っ た 時 に 、 読 み 込 み は 完 了 し て い る か も 知 れ な い し 、 完 了 し て い な い か も 知 れ な い 。 aio_error (3) を 使 う こ と で 完 了 し た か を テ ス ト で き る 。 完 了 し た I/O 操 作 の 返 り 値 は aio_return (3) で 取 得 で き る 。 aiocbp->aio_sigevent を 適 切 に 設 定 す る こ と で 、 I/O 完 了 の 非 同 期 通 知 は 受 け る こ と も で き る 。 詳 細 は sigevent (7) を 参 照 。

_POSIX_PRIORITIZED_IO が 定 義 さ れ て い て 、 か つ フ ァ イ ル が こ れ を サ ポ ー ト し て い る 場 合 、 非 同 期 操 作 は 呼 び 出 し た プ ロ セ ス の 優 先 度 か ら aiocbp->aio_reqprio を 引 い た 優 先 度 で 登 録 (submit) さ れ る 。

フ ィ ー ル ド aiocbp->aio_lio_opcode は 無 視 さ れ る 。

最 大 オ フ セ ッ ト を 超 え た 通 常 の フ ァ イ ル か ら は 、 何 も デ ー タ が 読 み 込 ま れ な い 。

返 り 値

成 功 し た 場 合 、 0 が 返 さ れ る 。 エ ラ ー の 場 合 、 リ ク エ ス ト は キ ュ ー に 入 れ ら れ ず 、 -1 が 返 さ れ て 、 errno が 適 切 に 設 定 さ れ る 。 エ ラ ー は 後 で の み 検 知 さ れ た 場 合 は 、 エ ラ ー は aio_return (3) と aio_error (3) 経 由 で 報 告 さ れ る こ と に な る ( aio_return (3) は 状 態 -1 を 返 し 、 aio_error (3) で エ ラ ー 状 態 — errno で 取 得 で き る EBADF の よ う な エ ラ ー 状 態 が 返 さ れ る )。

エ ラ ー

EAGAIN

リ ソ ー ス が 足 り な い 。

EBADF

aio_fildes は 読 み 込 み の た め に オ ー プ ン さ れ た 有 効 な フ ァ イ ル デ ィ ス ク リ プ タ ー で な い 。

EINVAL

aio_offset , aio_reqprio , aio_nbytes の う ち 1 つ 以 上 が 無 効 で あ る 。

ENOSYS

aio_read () は 実 装 さ れ て い な い 。

EOVERFLOW

フ ァ イ ル が 通 常 の フ ァ イ ル で あ り 、 フ ァ イ ル の 終 端 の 前 か ら 読 み 込 み を 開 始 し て 、 少 な く と も 1 バ イ ト を 読 み 込 も う と し た 。 し か し 開 始 位 置 が こ の フ ァ イ ル の 最 大 オ フ セ ッ ト を 超 え て い た 。

バ ー ジ ョ ン

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

属 性

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

Image grohtml-41701-1.png

準 拠

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

注 意

使 用 す る 前 に 制 御 ブ ロ ッ ク を 0 に し て お く の は 、 よ い 考 え で あ る 。 こ の 制 御 ブ ロ ッ ク は 、 読 み 込 み 操 作 が 進 行 し て い る 間 は 変 更 す べ き で な い 。 読 み 込 ま れ る バ ッ フ ァ ー 領 域 は 操 作 の 最 中 に ア ク セ ス す べ き で は な い 。 さ も な い と 起 こ る 結 果 が 不 定 に な る 。 こ れ に 含 ま れ る メ モ リ ー 領 域 は 、 有 効 な ま ま に し な け れ ば な ら な い 。

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

aio (7) を 参 照 。

関 連 項 目

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

こ の 文 書 に つ い て

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