在 Ubuntu(Linux)下,opendir 是 POSIX 标准库函数,声明在 <dirent.h> 中,用于打开一个目录。
#include <dirent.h>
DIR *opendir(const char *name);
opendir 的返回值DIR * 指针readdir、closedir 等操作DIR *dir = opendir("/home");
if (dir != NULL) {
// 成功
}
NULLerrno,以指示具体错误原因DIR *dir = opendir("/no/such/dir");
if (dir == NULL) {
perror("opendir");
}
errno 值(失败原因)| errno | 含义 |
|---|---|
ENOENT |
目录不存在 |
EACCES |
权限不足 |
ENOTDIR |
路径不是目录 |
EMFILE |
进程打开文件数达到上限 |
ENFILE |
系统打开文件数达到上限 |
ENOMEM |
内存不足 |
ELOOP |
符号链接循环 |
DIR *(非 NULL)NULL,并通过 errno 获取错误原因如果你需要,我也可以给你一个完整的 opendir + readdir + closedir 示例。