Man page - readdir(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

READDIR

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

名 前

readdir - デ ィ レ ク ト リ エ ン ト リ ー を 読 み 込 む

書 式

int readdir(unsigned int fd , struct old_linux_dirent * dirp ,
unsigned int
count );

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

説 明

こ れ は あ な た の 関 心 を 引 く よ う な 関 数 で は な い だ ろ う 。 POSIX 準 拠 の C ラ イ ブ ラ リ イ ン タ ー フ ェ ー ス に つ い て は readdir (3) を 参 照 の こ と 。 こ の ペ ー ジ で は 、 生 の カ ー ネ ル の シ ス テ ム コ ー ル イ ン タ ー フ ェ ー ス に つ い て 記 載 し て い る が 、 こ の イ ン タ ー フ ェ ー ス は getdents (2) に よ っ て 置 き 換 え ら れ た 。

readdir () は 、 フ ァ イ ル デ ィ ス ク リ プ タ ー fd が 参 照 し て い る デ ィ レ ク ト リ か ら old_linux_dirent 構 造 体 を ひ と つ 読 み 込 み 、 dirp で 指 さ れ た バ ッ フ ァ ー に 格 納 す る 。 count 引 数 は 無 視 さ れ る 。 最 大 で 1 個 の old_linux_dirent 構 造 体 が 読 み 出 さ れ る 。

old_linux_dirent 構 造 体 は (Linux カ ー ネ ル の フ ァ イ ル fs/readdir.c で 内 部 用 と し て ) 以 下 の よ う に 宣 言 さ れ る :

struct old_linux_dirent {
unsigned long d_ino; /* inode 番 号 */
unsigned long d_offset; /* こ の old_linux_dirent へ の オ フ セ ッ ト */
unsigned short d_namlen; /* こ の d_name の 長 さ */
char d_name[1]; /* (NULL 終 端 さ れ た ) フ ァ イ ル 名 */
}

d_ino は inode 番 号 で あ る 。 d_offset は デ ィ レ ク ト リ の 最 初 か ら こ の old_linux_dirent ま で の 距 離 で あ る 。 d_reclen d_name の 大 き さ で 、 終 端 の ヌ ル バ イ ト ('\0') を 含 ま な い 。 d_name は ヌ ル で 終 端 さ れ た フ ァ イ ル 名 で あ る 。

返 り 値

成 功 し た 場 合 は 、 1 が 返 さ れ る 。 デ ィ レ ク ト リ の 最 後 で は 0 が 返 さ れ る 。 エ ラ ー の 場 合 は -1 が 返 さ れ 、 errno が 適 切 に 設 定 さ れ る 。

エ ラ ー

EBADF

フ ァ イ ル デ ィ ス ク リ プ タ ー fd が 不 正 で あ る 。

EFAULT

引 数 が 呼 び 出 し 元 プ ロ セ ス の ア ド レ ス 空 間 外 を 指 し て い る 。

EINVAL

結 果 用 の バ ッ フ ァ ー が 小 さ す ぎ る 。

ENOENT

そ の よ う な デ ィ レ ク ト リ は 存 在 し な い 。

ENOTDIR

フ ァ イ ル デ ィ ス ク リ プ タ ー が デ ィ レ ク ト リ を 参 照 し て い な い 。

準 拠

こ の シ ス テ ム コ ー ル は Linux 固 有 で あ る 。

注 意

glibc は こ の シ ス テ ム コ ー ル に 対 す る ラ ッ パ ー 関 数 を 提 供 し て い な い 。 syscall (2) を 使 っ て 呼 び 出 す こ と 。 old_linux_dirent 構 造 体 を 自 分 自 身 で 定 義 す る 必 要 が あ る 。 し か し 、 た い て い は こ の シ ス テ ム コ ー ル で は な く readdir (3) を 使 う べ き 場 面 の こ と が 多 い 。

こ の シ ス テ ム コ ー ル は x86-64 で は 存 在 し な い 。

関 連 項 目

getdents (2), readdir (3)

こ の 文 書 に つ い て

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