在 Debian(以及所有符合 POSIX 的系统,包括 Linux) 中,opendir 的行为遵循 POSIX 标准。
opendir 函数原型#include <dirent.h>
DIR *opendir(const char *name);
DIR * 指针readdir、closedir 等函数操作NULLerrno 来指示错误原因errno 示例)| errno | 含义 |
|---|---|
ENOENT |
目录不存在 |
EACCES |
权限不足 |
ENOTDIR |
路径不是目录 |
EMFILE / ENFILE |
打开文件数过多 |
#include <stdio.h>
#include <dirent.h>
int main() {
DIR *dir = opendir("/tmp");
if (dir == NULL) {
perror("opendir");
return 1;
}
// 使用目录...
closedir(dir);
return 0;
}
DIR * 不是普通文件描述符read/writereaddir 读取目录项如果你是在 C / C++ / Shell / 调试 core dump 场景下问的,可以告诉我具体上下文,我可以更针对性地解释。