READDIR(2) Linux Programmer’s Manual READDIR(2) 名前 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) Linux 2008-10-02 READDIR(2)
READDIR(2) Linux Programmer’s Manual READDIR(2) NAME readdir - read directory entry SYNOPSIS int readdir(unsigned int fd, struct old_linux_dirent *dirp, unsigned int count); DESCRIPTION This is not the function you are interested in. Look at readdir(3) for the POSIX conforming C library interface. This page documents the bare kernel system call interface, which is superseded by getdents(2). readdir() reads one old_linux_dirent structure from the directory referred to by the file descriptor fd into the buffer pointed to by dirp. The argument count is ignored; at most one old_linux_dirent structure is read. The old_linux_dirent structure is declared as follows: 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 is an inode number. d_off is the distance from the start of the directory to this old_linux_dirent. d_reclen is the size of d_name, not counting the null terminator. d_name is a null-terminated file- name. RETURN VALUE On success, 1 is returned. On end of directory, 0 is returned. On error, -1 is returned, and errno is set appropriately. ERRORS EBADF Invalid file descriptor fd. EFAULT Argument points outside the calling process’s address space. EINVAL Result buffer is too small. ENOENT No such directory. ENOTDIR File descriptor does not refer to a directory. CONFORMING TO This system call is Linux-specific. NOTES Glibc does not provide a wrapper for this system call; call it using syscall(2). You will need to define the old_linux_dirent structure yourself. SEE ALSO getdents(2), readdir(3) COLOPHON This page is part of release 3.22 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2008-10-02 READDIR(2)
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa