在Linux下,readdir()函数用于读取目录中的条目。它的返回值是一个指向struct dirent结构的指针,该结构包含了关于目录条目的信息,如文件名、文件类型等。
如果成功读取到一个目录条目,readdir()将返回一个指向该条目的struct dirent结构的指针。当到达目录的末尾时,readdir()将返回NULL。
这里有一个简单的示例,展示了如何使用readdir()函数:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
int main() {
DIR *dir;
struct dirent *entry;
dir = opendir("."); // 打开当前目录
if (dir == NULL) {
perror("opendir");
exit(EXIT_FAILURE);
}
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
这个程序将打印当前目录下的所有文件和子目录。注意,readdir()返回的struct dirent结构中的d_name字段包含的是相对路径,而不是绝对路径。如果需要绝对路径,可以使用getcwd()函数获取当前工作目录,并将其与d_name拼接起来。