Dirent结构的成员

Nar*_*uto 23 c linux dir dirent.h readdir

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

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

问候

ask*_*ish 27

结构,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 */
};
Run Code Online (Sandbox Code Playgroud)

参考: man readdir

或者只是在include目录中查找"dirent.h".

  • 如另一个答案所写,只有`d_ino`和`d_name`是[POSIX](https://en.wikipedia.org/wiki/POSIX).应该避免使用其余部分,或者更加谨慎地使用其余部分,并且只有了解其含义. (4认同)
  • 其余字段仅用于极其简单的事情(例如确定条目是指文件还是子目录),并且告诉人们不要使用任何其他字段毫无意义(因为他们几乎总是必须使用它们)。 (2认同)

MBy*_*ByD 5

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

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

还请查看unix 规范。

  • 可能还有一些其他(实现或特定于系统的)成员,但出于 POSIX 可移植性原因,您不应使用它们。 (2认同)