readdir 是一个在 Linux 系统中用于读取目录内容的函数。它通常与 opendir 和 closedir 函数一起使用,以遍历目录中的所有文件和子目录。以下是如何使用 readdir 处理 Linux 目录项的步骤:
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
DIR *dir = opendir("path/to/directory");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
将 “path/to/directory” 替换为要读取的目录的路径。
readdir 读取目录项:struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
// 处理目录项
}
readdir 函数返回一个指向 dirent 结构的指针,该结构包含有关目录项的信息,如名称、inode 号等。
在 while 循环中,您可以根据需要处理每个目录项。例如,您可以打印目录项的名称:
printf("%s\n", entry->d_name);
在完成目录遍历后,使用 closedir 函数关闭目录:
closedir(dir);
将以上代码片段组合在一起,您将获得一个完整的示例,用于使用 readdir 处理 Linux 目录项:
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
DIR *dir = opendir("path/to/directory");
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
编译并运行此程序,它将打印指定目录中的所有文件和子目录。