opendir 和 readdir 是 C 语言中用于遍历目录的两个函数。它们通常配合使用以读取目录中的文件和子目录。下面是如何使用这两个函数的简单示例:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
int main() {
DIR *dir;
struct dirent *entry;
// 打开目录
dir = opendir("your_directory_path"); // 替换为你的目录路径
if (dir == NULL) {
perror("opendir");
return EXIT_FAILURE;
}
// 读取目录中的条目
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
// 关闭目录
closedir(dir);
return EXIT_SUCCESS;
}
opendir 函数:
DIR *opendir(const char *name);DIR 对象的指针。如果无法打开目录,则返回 NULL。readdir 函数:
struct dirent *readdir(DIR *dirp);dirent 结构的指针,该结构包含有关目录项的信息(如文件名)。如果到达目录流的末尾,则返回 NULL。closedir 函数:
int closedir(DIR *dirp);readdir 返回的 dirent 结构中的 d_name 字段来获取文件或目录的名称。closedir 来释放资源。opendir 的返回值以处理无法打开目录的情况。这个示例程序会列出指定目录中的所有文件和子目录。你可以根据需要修改代码以执行其他操作,例如过滤特定类型的文件或获取更多文件属性。