首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能将dirent->d_type与DT_DIR比较

不能将dirent->d_type与DT_DIR比较
EN

Stack Overflow用户
提问于 2017-10-11 17:35:34
回答 1查看 5.6K关注 0票数 4

我试图做一个简单的比较,以便能够做一些事情,如果文件类型读是一个目录。

样本代码:

代码语言:javascript
运行
复制
int main()
{
  DIR *dir = opendir(".");
  struct dirent *dirent = readdir(dir);
  if (dirent->d_type == DT_DIR)
    //do something
  return 0;
}

这里有这样的说法:

DT_DIR未初始化

当我尝试这样使用方括号时:"DT_DIR",我得到以下错误:

  • 比较指针和整数
  • 与字符串文本的比较会导致未定义行为。

如果我正确理解,我需要将DT_DIR放在一个char数组中?这是我第一次使用这些结构和函数。

EN

Stack Overflow用户

回答已采纳

发布于 2017-10-11 17:46:45

DT_DIR不是POSIX的一部分,而是一个glibc扩展。在包含头部以获得#define _GNU_SOURCE之前,在顶部定义>= (如果您的glibc版本为>= 2.19),则定义>=。事实上,d_type甚至在POSIX的.中都没有提到

票数 8
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46694350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档