错误:“ struct dirent”没有名为“ d_type”的成员

时间:2020-09-18 08:17:55

标签: c struct dirent.h

这是我的项目代码。我是C语言的初学者,这是我的问题

void recListFile(char *input, char *basePath){
   char path[1000];
   struct dirent *dp;
   DIR *dir = opendir(basePath);
   if (dp -> d_type =! DT_DIR){
   //some code
 }
} 
         

当我使用d_typeDT_DIR时,收到以下消息:

  1. 错误:“ struct dirent”没有名为“ d_type”的成员;
  2. 错误:未声明“ DT_DIR”

如何解决此问题? 在另一个问题中,我看到可以使用struct stat

我使用Windows和Clion作为IDE,然后使用Cygwin作为编译器。

1 个答案:

答案 0 :(得分:0)

d_type的{​​{1}}字段是特定于平台的字段。 POSIX struct direntd_ino字段是可移植的:

还应定义结构差异,其中应包括 以下成员:

d_name

POSIX sys/stat.h documentation提供了ino_t d_ino File serial number. char d_name[] Filename string of entry. 的可移植元素。

相关问题