linux readdir
时间: 2023-10-31 20:52:20 浏览: 108
readdir 是一个在 Linux 系统中用于读取目录内容的函数。它用于遍历指定目录中的所有文件和子目录,并将它们的名称和相关信息返回给调用者。
readdir 函数的原型如下:
```c
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
```
在使用之前,你需要包含头文件 `dirent.h` 并打开目录,然后通过循环读取每个文件或子目录的信息。每次调用 readdir 函数都会返回一个 dirent 结构体类型的指针,指向当前目录中的一个条目。当读取完所有条目后,readdir 函数将返回 NULL。
以下是一个简单的例子,演示了如何使用 readdir 函数来遍历指定目录中的文件和子目录:
```c
#include <stdio.h>
#include <dirent.h>
int main() {
DIR *dir;
struct dirent *entry;
// 打开目录
dir = opendir(".");
if (dir == NULL) {
perror("opendir");
return 1;
}
// 循环读取目录内容
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
// 关闭目录
closedir(dir);
return 0;
}
```
上述代码将会遍历当前目录下的所有文件和子目录,并输出它们的名称。
注意:readdir 函数仅返回文件和子目录的名称,如果你需要更详细的信息,如文件类型、大小等,可以使用 dirent 结构体提供的其他成员。
阅读全文