在 Debian(以及其他 Linux 系统)里,opendir 本身不能遍历目录,它只是“打开目录”,真正遍历要靠 readdir。
opendir():打开目录,返回 DIR *readdir():读取目录项(一次一个)closedir():关闭目录#include <stdio.h>
#include <dirent.h>
int main(int argc, char *argv[]) {
DIR *dir;
struct dirent *entry;
dir = opendir(".");
if (dir == NULL) {
perror("opendir");
return 1;
}
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
gcc listdir.c -o listdir
./listdir
readdir 会包含 . 和 ..DT_DIR 并递归调用<dirent.h> 中,POSIX 标准如果你是想问:
for / find)可以告诉我,我直接给你对应版本。