【发布时间】:2011-01-12 23:09:50
【问题描述】:
目前我有一些类似的代码(压缩并删除了一堆错误检查):
dp = readdir(dir);
if (dp->d_type == DT_DIR) {
}
这在我的 Linux 机器上运行良好。然而在另一台机器上(看起来像 SunOS,sparc):
SunOS HOST 5.10 Generic_127127-11 sun4u sparc SUNW,Ultra-5_10
我在编译时收到以下错误:
error: structure has no member named `d_type'
error: `DT_DIR' undeclared (first use in this function)
我认为 dirent.h 标头是跨平台的(用于 POSIX 机器)。任何建议。
【问题讨论】:
-
当我看到跨平台时,我倾向于假设您的意思是 Windows,也可能是 OS/2。 :-) Posix 的答案很简单,而且有人已经给出了答案。
标签: unix posix system-calls dirent.h