温馨提示×

ubuntu copendir返回值有哪些

小樊
43
2026-10-05 14:28:13
栏目: 智能运维

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

函数原型

#include <dirent.h>

DIR *opendir(const char *name);

opendir 的返回值

1. 成功

  • 返回一个 非空 DIR * 指针
  • 该指针是一个目录流(directory stream),用于后续的 readdir、closedir 等操作
DIR *dir = opendir("/home");
if (dir != NULL) {
    // 成功
}

2. 失败

  • 返回 NULL
  • 同时设置全局变量 errno,以指示具体错误原因
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 示例。

0 踩