在 Ubuntu(Linux)下使用 C/C++ 编程时,readdir 的返回类型如下:
#include <dirent.h>
struct dirent *readdir(DIR *dirp);
返回类型:
struct dirent *
即:指向 struct dirent 结构体的指针
struct dirent 的指针(下一次调用会被覆盖,不能长期保存)NULL注意:
- 到达目录结尾和出错都返回
NULL- 需要通过
errno区分错误
struct dirent 常见成员(Ubuntu / glibc)struct dirent {
ino_t d_ino; // inode 号
off_t d_off; // 偏移量
unsigned short d_reclen; // 记录长度
unsigned char d_type; // 文件类型
char d_name[256]; // 文件名
};
DIR *dir = opendir(".");
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
readdir_r(已不推荐)readdir + 单线程使用,或 scandir如果你是问 Python / Java / Shell 中的 readdir,也可以告诉我具体语言。