readdir() 是一个用于读取目录内容的函数,它在 CentOS 系统中的使用与其他 Linux 发行版相同。readdir() 函数的返回值是一个指向 struct dirent 结构的指针,该结构包含了目录项的信息。当读取到目录末尾时,readdir() 返回 NULL。
下面是一个简单的示例,展示了如何使用 readdir() 函数读取目录内容并处理返回值:
#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <string.h> int main(int argc, char *argv[]) { DIR *dir; struct dirent *entry; if (argc != 2) { fprintf(stderr, "Usage: %s <directory>\n", argv[0]); exit(EXIT_FAILURE); } dir = opendir(argv[1]); if (dir == NULL) { perror("opendir"); exit(EXIT_FAILURE); } while ((entry = readdir(dir)) != NULL) { printf("Entry name: %s\n", entry->d_name); // 在这里处理目录项,例如检查文件类型、大小等 } if (closedir(dir) == -1) { perror("closedir"); exit(EXIT_FAILURE); } return 0; } 在这个示例中,我们首先使用 opendir() 函数打开一个目录,然后使用 readdir() 函数读取目录内容。对于每个目录项,我们打印其名称(d_name 字段)。当 readdir() 返回 NULL 时,表示已经到达目录末尾,我们关闭目录并退出程序。
你可以根据需要对示例进行修改,以处理特定的目录项。例如,你可以检查文件类型(通过 entry->d_type 字段)、文件大小(通过 entry->d_size 字段)等。更多关于 struct dirent 结构的信息,你可以查阅 Linux 手册页(man 3 dirent)。