温馨提示×

ubuntu copendir返回值代表什么

小樊
44
2026-09-02 14:33:05
栏目: 智能运维

在 Ubuntu(Linux)下,opendirPOSIX 标准库函数,声明在 <dirent.h> 中,用于打开一个目录。

函数原型

#include <dirent.h>

DIR *opendir(const char *name);

opendir 返回值含义

✅ 成功

  • 返回一个 非 NULL 的 DIR * 指针
  • 该指针是一个目录流(directory stream),后续可用:
    • readdir()
    • rewinddir()
    • closedir()

示例:

DIR *dir = opendir("/home");
if (dir != NULL) {
    // 成功打开目录
}

❌ 失败

  • 返回 NULL
  • 同时设置全局变量 errno,表示具体错误原因

常见 errno 值:

errno 含义
EACCES 权限不足
ENOENT 目录不存在
ENOTDIR 路径不是目录
EMFILE / ENFILE 打开文件数过多
ENOMEM 内存不足

示例:

#include <errno.h>
#include <string.h>

DIR *dir = opendir("/no/such/dir");
if (dir == NULL) {
    perror("opendir");
}

总结

  • 非 NULL → 打开成功,返回目录流指针
  • NULL → 打开失败,用 errno 判断原因

如果你愿意,我也可以给你一个完整的目录遍历示例(C 语言)。

0