文章目录
- List
- 获取文件目录信息
- DIR结构体
- 目录信息结构体
- ino_t d_ino; /* inode number */
- off_t d_off; /* not an offset; see NOTES */
- unsigned short d_reclen; /* length of this record */
- unsigned char d_type; /* type of file; not supported */
- char d_name [NAME_MAX+1]; dayin /*
file name (null-terminated) */
- 相关函数
- opendir
- readdir
- 其他dir系列函数
- 范例
获取目录信息和获取文件信息差不多,起初Unix 的设计就将目录定义为一种特殊的文件
在这不过多讨论DIR内部结构体的成员,只需要知道这个结构体也是保存了当前正在被读取的目录的有关信息。有点类似于FILE
接着是dirent结构体,首先我们要弄清楚目录文件(directory file)的概念:这种文件包含了其他文件的名字以及指向与这些文件有关的信息的指针(摘自《UNIX环境高级编程(第二版)》)。从定义能够看出,dirent不仅仅指向目录,还指向目录中的具体文件,readdir函数同样也读取目录下的文件
同样先对目录信息进行一个了解
目录信息结构体如下所示:
ino_t d_ino; /* inode number */
索引节点
和文件信息结构体一样,目录结构体也是有索引节点号的
off_t d_off; /* not an offset; see NOTES */
在目录文件中的偏移
unsigned short d_reclen; /* length of this record */
文件名长
unsigned char d_type; /* type of file; not supported */
文件类型
char d_name [NAME_MAX+1]; /* file name (null-terminated) */
文件名,最长255字符
opendir
- 头文件
- 函数原型
- 函数功能
打开一个目录
- 返回值
- 成功则返回一个DIR的结构体指针
- 失败则返回一个空的指针
readdir
- 头文件
- 函数原型
- 函数功能
读取目录
- 返回值
- 成功则返回下个目录进入点.
- 有错误发生或读取到目录文件尾则返回NULL
其他dir系列函数
- 函数原型