kazmax - Linux で自宅サーバー

readdir - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 準拠
  7. 関連項目

名前

readdir - ディレクトリ・エントリを読み込む

書式

#include <linux/types.h>
#include <linux/dirent.h>
#include <linux/unistd.h>
#include <errno.h>

_syscall3(int, readdir, unsigned int, fd, struct dirent *, dirp,"
          unsigned int, count)"
                    /* Using syscall(2) may be preferable; see intro(2) */


int readdir(unsigned int fd, struct dirent *dirp,
            unsigned int count);

説明

これはあなたの興味をもっている関数ではない。 POSIX 準拠の C ライブラリ・インターフェースについては   readdir (3) を見ること。 このページは裸のカーネル・システム・コール・インターフェースに ついて記述している、これは変更され、   getdents (2) によって置き換られた。

readdir ()は fd が指しているディレクトリから dirent 構造体を読み込み、 dirp で指されたメモリ領域に格納する。 count パラメーターは(ほとんどの dirent 構造体の読み込みにおいて)無視される

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


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

d_ino は inode 番号である。 d_off はディレクトリの最初からこの dirent まで距離である。 d_reclend_name の大きさで、 ヌル文字の終端を含んでいない。 d_name はヌル文字で終るファイル名である。

返り値

成功した場合は、1 が返される。 ディレクトリの最後では 0 が返される。 エラーの場合は -1 が返され、 errno が適切に設定される。

エラー

EBADF
ファイル・ディスクリプター fd が不正である。
EFAULT
引き数のポインターが呼び出したプロセスがアクセス可能な空間の 外部を指している。
EINVAL
結果用のバッファーが小さ過ぎる。
ENOENT
そのようなディレクトリは存在しない。
ENOTDIR
ファイル・ディスクリプターがディレクトリを参照していない。

準拠

このシステム・コールは Linux 特有である。

関連項目