在 Ubuntu(Linux)里,copendir 并不是标准函数,你可能想问的是下面几种之一:
opendir / readdir?在 Linux 下,打开并遍历目录的标准函数是:
#include <dirent.h>
#include <stdio.h>
int main() {
DIR *dir = opendir("."); // 打开当前目录
if (!dir) {
perror("opendir");
return 1;
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
编译:
gcc test.c -o test
./test
✅ 这是 最常用的方式
copendiropendircopendircopendir 不是 POSIX 标准 API,在 某些 glibc 版本内部 存在,但:
你可以用:
man opendir
但:
man copendir
通常是 没有结果的
copendir 不能复制目录,需要用:
cp -r src_dir dest_dir
流程是:
opendir → readdir → 判断文件类型 → 复制
示例思路:
// 伪代码
opendir(src)
while (readdir())
if (普通文件) copy
if (目录) 递归
| 你想做的事 | 正确做法 |
|---|---|
| 打开目录 | opendir() |
| 读目录 | readdir() |
| 复制目录 | cp -r 或自己写代码 |
| 使用 copendir | ❌ 不推荐 |
如果你是在某段代码 / 教程里看到
copendir,把来源贴出来,我可以帮你判断是否误写,或给你等价的正确用法。
需要我写一个 完整的目录复制 C 程序 吗?