kazmax - Linux で自宅サーバー

readdir - ライブラリコールの説明 - Linux コマンド集 一覧表

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

名前

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

書式

#include <sys/types.h>

#include <dirent.h>
struct dirent *readdir(DIR *dir);

説明

readdir () 関数は、dir の指すディレクトリストリームの中で、 次のディレクトリエントリを表す dirent 構造体へのポインタを返す。 ファイルの最後に達した場合やエラーが発生した場合は NULL を返す。

Linux では dirent 構造体は以下のように定義されている:


struct dirent {
    ino_t          d_ino;       /* inode 番号 */
    off_t          d_off;       /* 次の dirent へのオフセット */
    unsigned short d_reclen;    /* このレコードの長さ */
    unsigned char  d_type;      /* ファイル種別 */
    char           d_name[256]; /* ファイル名 */
};

POSIX によると、 dirent 構造体にはサイズの明示されていない "char d_name[]" フィールドが含まれる。このフィールドには最大で NAME_MAX 文字と、それに続く終端の NULL バイトが格納される。 POSIX.1-2001 では XSI 拡張として "ino_t d_ino" フィールドについても記述している。 「他のフィールドを使用することは、 プログラムの可搬性を損なうことになるだろう」

readdir () によって返されるデータは、以降の同じストリームに対する readdir () の呼び出しによって上書きされる可能性がある。

返り値

readdir () 関数は dirent 構造体へのポインタを返す。 エラーが発生するか、ファイルの最後に達した場合は NULL を返す。 エラーの場合、 errno が適切に設定される。

エラー

EBADF
ディレクトリストリームディスクリプタ dir が無効。

準拠

SVr4, 4.3BSD, POSIX.1-2001

関連項目