readdir
函数是用于读取目录内容的函数,其返回值类型为指向 dirent
结构体的指针。如果读取成功,返回的指针指向一个包含目录项信息的 dirent
结构体;如果读取失败或到达目录末尾,则返回 NULL
。
dirent
结构体通常包含以下成员:
d_ino
: 目录项的 inode 号d_off
: 目录项在目录文件中的偏移量d_reclen
: 目录项的长度d_name
: 目录项的名称需要注意的是,dirent
结构体的具体定义可能因操作系统和编译器的不同而有所差异。在使用 readdir
函数时,建议查阅相关文档以了解特定平台上的 dirent
结构体定义。
以下是一个简单的示例,展示了如何使用 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");
return EXIT_FAILURE;
}
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return EXIT_SUCCESS;
}
在这个示例中,我们使用 opendir
函数打开当前目录,然后使用 readdir
函数逐个读取目录项,最后使用 closedir
函数关闭目录。