struct dirent 的用法
时间: 2024-04-22 12:26:06 浏览: 210
struct dirent 是一个用于表示目录中的条目的结构体。它定义在 dirent.h 头文件中,常用于对目录进行遍历。
struct dirent 结构体包含以下成员:
1. d_ino:表示文件的 inode 号,可以用于唯一标识文件。
2. d_off:文件在目录中的偏移量。
3. d_reclen:记录长度。
4. d_type:文件类型,可以是 DT_REG(普通文件)、DT_DIR(目录文件)等。
5. d_name:文件名字符串。
通过使用 opendir() 函数打开一个目录,并使用 readdir() 函数遍历目录中的条目,可以获取到每个条目的信息,并存储在 struct dirent 结构体中。
下面是一个简单的示例代码,演示了如何使用 struct dirent:
```c
#include <dirent.h>
#include <stdio.h>
int main() {
DIR *dir;
struct dirent *entry;
dir = opendir("/path/to/directory"); // 打开目录
if (dir == NULL) {
perror("opendir");
return 1;
}
while ((entry = readdir(dir)) != NULL) { // 遍历目录中的条目
printf("Name: %s\n", entry->d_name);
printf("Inode: %lu\n", entry->d_ino);
printf("Type: %d\n", entry->d_type);
printf("-------------\n");
}
closedir(dir); // 关闭目录
return 0;
}
```
以上示例代码打开指定路径的目录,并打印出每个条目的文件名、inode 号和类型。需要注意的是,readdir() 函数返回的 struct dirent 结构体指针在每次调用时会被更新,直到遍历结束时返回 NULL。
阅读全文