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;
}
这个程序将打印当前目录下的所有文件和子目录的名称。