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_reclend_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