27

私はdirent.hライブラリを使い始めましたが、私の本の中でdirent *p->d_nameを構造化する「structdirent」構造体の非常に便利なメンバーに出くわしました。しかし残念ながら、この構造の他のメンバーについては述べていません。

この構造のメンバーは他に何があり、それらは何のために使用されているのでしょうか?

よろしく

4

3 に答える 3

36

構造struct direntは、ディレクトリ エントリを参照します。

http://www.gnu.org/software/libc/manual/html_node/Directory-Entries.html

Linux では、次のように定義されています。

struct dirent {
    ino_t          d_ino;       /* inode number */
    off_t          d_off;       /* offset to the next dirent */
    unsigned short d_reclen;    /* length of this record */
    unsigned char  d_type;      /* type of file; not supported
                                   by all file system types */
    char           d_name[256]; /* filename */
};

参照:man readdir

または、インクルード ディレクトリで「dirent.h」を探します。

于 2012-10-20T18:31:28.073 に答える
5

メンバーは 2 人だけです ( wikipediaから):

  • ino_t d_ino- ファイルシリアル番号
  • char d_name[]- エントリの名前 (NAME_MAX のサイズを超えない)

UNIX仕様も見てください。

于 2012-10-20T18:20:52.797 に答える
1

上記の@ Binyamin Sharetの回答に加えて:

 off_t d_off - file offset
    unsigned short int d_reclen - length of the dirent record
    unsigned short int d_namlen - length of name
    unsigned int d_type - type of file
于 2012-10-20T18:22:02.947 に答える