在 Linux 下,readdir() 是可以读取到隐藏文件的。
. 开头(如 .bashrc、.config)readdir() / readdir64() 会返回目录下的所有条目,包括:
. 开头的). 和 ..#include <dirent.h>
#include <stdio.h>
int main() {
DIR *dir = opendir(".");
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(dir);
return 0;
}
运行后会看到 .bashrc、.、 .. 等。
ls 默认不显示隐藏文件,是因为 ls 自己过滤了ls -a 才显示所有(包括隐藏)需要自己在代码里过滤:
if (entry->d_name[0] == '.') continue;
✅ readdir() 能读隐藏文件
❌ 它不是“看不到”,而是 ls 等工具默认隐藏
如果你是想问 Python / shell / 特定语言 的 readdir 行为,也可以告诉我。