温馨提示×

debian copendir返回值是什么

小樊
39
2026-09-16 03:34:41
栏目: 智能运维

在 Debian(以及其它 Linux 系统、POSIX 标准)里,opendirC 库函数,定义在 <dirent.h> 中。

opendir 返回值

DIR *opendir(const char *name);

成功时

  • 返回一个 指向 DIR 结构的指针
  • 该指针用于后续的 readdirclosedir 等操作

失败时

  • 返回 NULL
  • 同时设置 errno 以表示错误原因

常见错误(errno 示例)

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 等),也可以继续问我。

0