Dirent结构的成员

时间:2012-10-20 18:17:29

标签: c linux dir readdir dirent.h

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

我想知道这个结构的成员还有什么用呢?

此致

3 个答案:

答案 0 :(得分:26)

结构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"在include目录中。

答案 1 :(得分:3)

只有两名成员(来自wikipedia):

  • ino_t d_ino - 文件序列号
  • char d_name[] - 条目名称(不会超过NAME_MAX的大小)

同时查看unix spec

答案 2 :(得分: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