Manpages

名 前

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 引 き 数 は (ほ と ん ど の old_linux_dirent 構 造 体 の 読 み 込 み に お い て )無 視 さ れ る

old_linux_dirent 構 造 体 は 以 下 の よ う に 宣 言 さ れ る :

struct old_linux_dirent {
long d_ino; /* inode number */
off_t d_off; /* offset to this old_linux_dirent */
unsigned short d_reclen; /* length of this d_name */
char d_name[NAME_MAX+1]; /* filename (null−terminated) */ }

d_ino は inode 番 号 で あ る 。 d_off は デ ィ レ ク ト リ の 最 初 か ら こ の old_linux_dirent ま で 距 離 で あ る 。 d_reclend_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 プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。