在 Ubuntu / Linux 下,你问的应该是 opendir 函数(不是 copendir,标准 C / POSIX 里没有 copendir 这个函数)。
opendir 是什么?opendir 是 POSIX 标准库函数,用于 打开一个目录,以便后续读取目录中的内容。
它定义在头文件:
#include <dirent.h>
DIR *opendir(const char *name);
name:要打开的目录路径(如 "/home/user" 或 ".")DIR * 目录流指针NULL,并设置 errno| 函数 | 作用 |
|---|---|
readdir |
读取目录中的一个条目 |
closedir |
关闭目录 |
rewinddir |
重新定位到目录开头 |
seekdir / telldir |
目录位置操作 |
#include <stdio.h>
#include <dirent.h>
int main() {
DIR *dir = opendir(".");
if (dir == NULL) {
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
ENOENTEACCESENOTDIRopendir 是 用户态函数openat()glibc如果你其实是想问 “copendir”、“scandir”、“fdopendir” 或其他类似函数,也可以告诉我,我可以详细解释。