readdir 是一个在 Linux 文件系统中用于读取目录内容的函数。它是 POSIX 标准的一部分,通常在 C 语言编程中使用。readdir 函数的作用是遍历一个目录(由 DIR 类型的指针表示)并返回该目录中的下一个文件或子目录的名称。
readdir 函数的原型如下:
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
参数:
dirp:指向一个已经打开的目录的 DIR 类型的指针。返回值:
struct dirent 结构的指针,该结构包含了目录中的一个文件或子目录的信息。NULL。NULL 并设置相应的 errno。struct dirent 结构通常包含以下字段:
d_ino:文件的 inode 号。d_off:文件的偏移量。d_reclen:d_name 字段的长度。d_name:文件或目录的名称。使用 readdir 函数的基本步骤如下:
opendir 函数打开一个目录,返回一个 DIR 类型的指针。readdir 函数读取目录中的文件或子目录名称。readdir 的返回值,如果为 NULL,则表示已经到达目录末尾或发生错误。struct dirent 结构中的数据。closedir 函数关闭目录。下面是一个简单的示例,展示了如何使用 readdir 函数读取当前目录下的所有文件和子目录:
#include <stdio.h>
#include <dirent.h>
#include <stdlib.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;
}
这个程序将打印当前目录下的所有文件和子目录的名称。