web-dev-qa-db-ja.com

Dirent構造のメンバー

私はdirent.hライブラリの使用を開始し、私の本の中でdirent * p-> d_nameを構築する "struct dirent" structerの非常に有用なメンバーに出会いました。しかし、残念ながら、この構造の他のメンバーは記載されていません。

私はこの構造のメンバーは他に何であり、何のために使用されているのだろうと思っていましたか?

よろしく

22
Naruto

構造、 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」を探します。

26
askmish

メンバーは2つしかありません( wikipedia から):

  • ino_t d_ino-ファイルのシリアル番号
  • char d_name[]-エントリの名前(NAME_MAXのサイズを超えることはできません)

nix spec もご覧ください。

3
MByD

上記の@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
1
Ravindra Bagale