简短回答:是的,Debian 上的 readdir(以及相关 readdir 系列函数)在 ARM 架构上是兼容的。
下面详细解释一下:
readdir 是什么readdir 是 POSIX / glibc 提供的目录读取函数,常见于:
readdir()readdir_r()readdir64()它属于 C 库(glibc),不是某个 Debian 特有的东西。
Debian 官方支持多种架构,包括:
armhf(32 位 ARM,硬浮点)arm64(AArch64,64 位 ARM)在这些架构上:
readdir 行为一致getdents64)由内核和 libc 适配✅ 代码无需修改即可在 x86 / ARM 上编译运行
虽然不是“不兼容”,但有以下实际情况:
readdir 本身不受影响,但如果你:
某些 ARM 设备使用:
这些不会影响 readdir 接口,但:
armhf:使用 readdir / readdir64arm64:默认 64 位一般现代程序用:
#define _FILE_OFFSET_BITS 64
即可统一处理
#include <dirent.h>
#include <stdio.h>
int main() {
DIR *d = opendir(".");
struct dirent *entry;
while ((entry = readdir(d)) != NULL) {
printf("%s\n", entry->d_name);
}
closedir(d);
return 0;
}
✅ 在 Debian x86 / armhf / arm64 上直接编译运行
readdir 在 Debian ARM 上完全兼容如果你有:
可以把代码或错误信息发出来,我可以帮你具体分析。