所以我有一个项目,我需要构建一个小的简单文本外壳,它可以运行、编辑和读取目录中的文件。我有一个应该可以工作的小原型,除非我在编译时收到关于在 dirent.h 头文件中使用的 struct dirent 中找不到 d_type 的错误。
d = opendir( "." );
c = 0;
while ((de = readdir(d))){
if ((de->de_type) & DT_DIR)
printf( " ( %d Directory: %s ) \n", c++, de->de_name);
}
变量“de”是 struct dirent* 类型,正在检查它的类型,我收到错误:“struct dirent”没有名为“de_type”的成员
这就是我真正感到困惑和困惑的地方:我已经在 Windows(使用 dev C++)和 Ubuntu(使用 gcc)上编译了这段代码。我在两个操作系统上都收到了相同的错误,当我检查使用的库时,我相信这是普通的 gnu C 库,那里有一个名为 d_type 的变量:
https://www.gnu.org/software/libc/manual/html_node/Directory-Entries.html
我发现了对 dirent.h 文件的其他引用,这不是因为一个文件在不同的库中,如果是这种情况,我该如何加载该库以便编译代码?
对不起,很长的帖子,非常感谢所有回答的人!