READDIR
Section: Linux Programmer's Manual (2)
Updated: 2008-10-02
Index
JM Home Page
roff page
名前
readdir - ディレクトリ・エントリを読み込む
書式
int readdir(unsigned int fd, struct old_linux_dirent *dirp,
unsigned int count);
説明
これはあなたの興味をもっている関数ではない。
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_reclen
は
d_name
の大きさで、
ヌル文字の終端を含んでいない。
d_name
はヌル文字で終るファイル名である。
返り値
成功した場合は、1 が返される。
ディレクトリの最後では 0 が返される。
エラーの場合は -1 が返され、
errno
が適切に設定される。
エラー
- EBADF
-
ファイル・ディスクリプター
fd
が不正である。
- EFAULT
-
引き数のポインターが呼び出したプロセスがアクセス可能な空間の
外部を指している。
- EINVAL
-
結果用のバッファーが小さ過ぎる。
- ENOENT
-
そのようなディレクトリは存在しない。
- ENOTDIR
-
ファイル・ディスクリプターがディレクトリを参照していない。
準拠
このシステム・コールは Linux 特有である。
注意
glibc はこのシステムコールに対するラッパー関数を提供していない。
syscall(2)
を使って呼び出すこと。
old_linux_dirent
構造体を自分自身で定義する必要がある。
関連項目
getdents(2),
readdir(3)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 03:26:52 GMT, April 25, 2010