温馨提示×

linux readdir如何关闭

小樊
44
2026-10-02 17:07:00
栏目: 智能运维

在 Linux 里,readdir 本身不是一个“打开”的资源,所以没有“关闭 readdir”这一说。
你真正需要关闭的,是和 readdir 配合使用的 目录流(DIR *)。


正确用法(重点)

#include <dirent.h>

DIR *dir = opendir("/path");
if (!dir) {
    perror("opendir");
    return -1;
}

struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
    // 处理 entry
}

closedir(dir);   // ✅ 这里才是“关闭”

✅ 关闭目录流用 closedir(),不是 readdir()


常见误解澄清

函数 作用 是否需要关闭
opendir 打开目录 ❌
readdir 读取一个目录项 ❌
closedir 关闭目录流 ✅ 必须

如果你用的是 readdir_r

closedir(dir);

一样,仍然只关 DIR *


常见错误

❌ 错误写法:

readdir_close(dir); // 不存在

✅ 正确:

closedir(dir);

一句话总结

Linux 中 readdir 不需要关闭,关闭的是 opendir 返回的 DIR *,用 closedir()。

如果你是在 shell / Python / Java / 某个具体场景 下问的,也可以告诉我,我可以按那个环境讲。

0 踩