在 Ubuntu(Linux) 下,opendir() 的返回值如下:
#include <dirent.h>
DIR *opendir(const char *name);
成功时
返回一个指向 DIR* 类型的目录流指针(非空指针),后续可用于 readdir()、closedir() 等操作。
失败时
返回 NULL,并设置 errno 来指示错误原因。
| errno | 含义 |
|---|---|
ENOENT |
目录不存在 |
EACCES |
权限不足 |
ENOTDIR |
不是目录 |
EMFILE |
进程打开文件数过多 |
ENFILE |
系统打开文件数过多 |
#include <stdio.h>
#include <dirent.h>
#include <errno.h>
int main() {
DIR *dir = opendir("/tmp");
if (dir == NULL) {
perror("opendir failed");
return 1;
}
// 使用目录流
closedir(dir);
return 0;
}
✅ 返回值类型:DIR *
✅ 成功:非 NULL
✅ 失败:NULL,errno 被设置
如果你是在 C/C++ 编程 或 调试某个具体错误,可以把代码贴出来,我可以帮你具体分析。