Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       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.54 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。