你提到的 copendir 其实并不是一个标准或常见的函数,在 Linux / POSIX / glibc 中一般根本不存在这个函数,所以不只是 Debian,几乎所有 Linux 发行版(Ubuntu、CentOS、Arch 等)都没有它。
你可能混淆了下面这些目录/文件相关的标准函数:
#include <dirent.h>
DIR *opendir(const char *name);
struct dirent *readdir(DIR *dirp);
int closedir(DIR *dirp);
opendir():打开目录readdir():读取目录项closedir():关闭目录✅ 这些在 Debian 上完全可用
opendir(不是 copendir)这是标准 POSIX 函数,Debian 当然有。
scandirint scandir(const char *dir, struct dirent ***namelist,
int (*filter)(const struct dirent *),
int (*compar)(const struct dirent **, const struct dirent **));
fdopendirDIR *fdopendir(int fd);
原因很简单:
copendircopendir如果存在 copendir,那通常是:
如果是“关闭目录”,那是:
closedir(dir);
copendiropendir / readdir / closedir如果你是从某段代码、某个教程或某个错误提示里看到 copendir,可以把原文贴出来,我可以帮你确认它到底是什么。