在 Ubuntu(Linux)下,如果你使用的是 C 语言 的 opendir() 打开了目录流,那么关闭句柄要用 closedir()。
#include <dirent.h>
#include <stdio.h>
int main() {
DIR *dir = opendir("/path/to/dir");
if (dir == NULL) {
perror("opendir");
return 1;
}
/* 使用 readdir 等操作 */
// 关闭目录句柄
closedir(dir);
return 0;
}
opendir() 返回的是 DIR * 类型的目录流指针close()(那是用于 open() 返回的文件描述符)closedir(DIR *)closedir(),会造成文件描述符泄漏❌ 错误方式:
close(dir); // 错误,dir 不是 int 文件描述符
✅ 正确方式:
closedir(dir);
如果你用的是 std::filesystem(C++17):
for (auto &p : std::filesystem::directory_iterator("/path")) {
// 自动管理,无需手动关闭
}
如果你说的是 其他语言(如 Python、Shell) 或 其他“copendir”接口,可以告诉我具体语言或上下文,我可以更精准回答。