readdir
是一个在 C 语言中用于读取目录内容的函数,它在 CentOS 系统中同样适用。以下是一个使用 readdir
的实际应用案例:
案例:列出指定目录下的所有文件和子目录
假设你需要编写一个程序,用于列出 CentOS 系统中指定目录下的所有文件和子目录。你可以使用 opendir
、readdir
和 closedir
函数来实现这个功能。
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
void list_directory_contents(const char *path) {
DIR *dir;
struct dirent *entry;
dir = opendir(path);
if (dir == NULL) {
perror("opendir");
return;
}
printf("Contents of directory '%s':\n", path);
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
}
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <directory_path>\n", argv[0]);
return 1;
}
list_directory_contents(argv[1]);
return 0;
}
编译和运行
将上述代码保存为 list_directory_contents.c
,然后使用以下命令编译:
gcc -o list_directory_contents list_directory_contents.c
运行程序,传入要列出内容的目录路径:
./list_directory_contents /path/to/directory
程序将输出指定目录下的所有文件和子目录。
这个案例展示了如何在实际应用中使用 readdir
函数来读取目录内容。你可以根据需要修改这个程序,以实现更复杂的功能,例如过滤特定类型的文件、递归遍历子目录等。