readdir
函数是用于读取目录内容的系统调用。它在 POSIX 标准中定义,通常在 C 编程语言中使用。通过 readdir
,你可以获取一个目录中的文件和子目录的列表。
以下是如何使用 readdir
函数的基本步骤:
打开目录:使用 opendir
函数打开一个目录,返回一个 DIR*
类型的指针。
读取目录项:使用 readdir
函数从目录中读取条目。
关闭目录:使用 closedir
函数关闭目录。
下面是一个简单的示例代码,演示如何使用 readdir
来列出当前目录下的所有文件和子目录:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.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(".")
:打开当前目录(.
表示当前目录),返回一个指向 DIR
结构的指针。readdir(dir)
:从目录中读取下一个条目。如果成功,返回一个指向 dirent
结构的指针;如果到达目录末尾,返回 NULL
。entry->d_name
:dirent
结构中的 d_name
字段包含目录项的名称。closedir(dir)
:关闭目录。readdir
返回的 dirent
结构中还包含其他有用的信息,比如文件类型、inode 号等。可以通过 entry->d_type
来判断文件类型。closedir
来释放资源。