27

我已经开始使用 dirent.h 库,并且在我的书中遇到了一个非常有用的“struct dirent”结构体成员,它 struct dirent *p->d_name。但不幸的是,它没有说明这个结构的任何其他成员。

我想知道这个结构的其他成员是什么,它们的用途是什么?

问候

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

只有两个成员(来自维基百科):

  • 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 回答