在 Debian(以及其它 Linux 系统、POSIX 标准)里,opendir 是 C 库函数,定义在 <dirent.h> 中。
opendir 返回值DIR *opendir(const char *name);
DIR 结构的指针readdir、closedir 等操作NULLerrno 以表示错误原因| errno | 含义 |
|---|---|
ENOENT |
目录不存在 |
EACCES |
权限不足 |
ENOTDIR |
路径不是目录 |
EMFILE / ENFILE |
打开文件数过多 |
#include <dirent.h>
#include <stdio.h>
int main() {
DIR *dir = opendir("/tmp");
if (dir == NULL) {
perror("opendir");
return 1;
}
// 使用 dir ...
closedir(dir);
return 0;
}
DIR *(非空指针)NULL + errno如果你问的是 shell 命令 或 系统调用层面(openat 等),也可以继续问我。