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;
}
编译并运行此程序,它将打印指定目录中的所有文件和子目录。