在 Debian 里,readdir 并不是“某个文件”,而是 系统调用 / 库函数,因此你要分几种情况来看它在“哪”。
readdir 用于 读取目录内容,定义在 POSIX 标准 中,在 Linux / Debian 中由 glibc 提供。
相关函数有:
readdir()readdir_r()(已废弃)readdir64()头文件:
#include <dirent.h>
libc6
几乎所有 Debian 系统都自带。
libc6-dev
安装:
sudo apt update
sudo apt install libc6-dev
Debian 下查看文档:
man readdir
如果没有:
sudo apt install man-db manpages manpages-dev
常用手册:
man 3 readdir # 库函数(用户态)
man 2 getdents # 底层系统调用
如果你是想 看 glibc 源码:
sudo apt source glibc
源码位置(示例):
glibc-2.xx/sysdeps/unix/sysv/linux/readdir.c
readdir.c❌ 不是内核 API
✅ 它是 glibc 封装函数
底层调用的是:
getdents / getdents64
查看系统调用:
man 2 getdents
#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;
}
编译:
gcc test.c -o test
Debian 中
readdir在libc6里,头文件是<dirent.h>,文档用man 3 readdir,源码在 glibc 中。
如果你是想:
可以告诉我具体场景,我能更精确帮你。