gpt4 book ai didi

c - 'DT_REG Undeclared' 即使在函数中使用 头文件

转载 作者:行者123 更新时间:2023-12-04 18:42:51 26 4
gpt4 key购买 nike

我在引用 DT_REG 的函数中使用 头文件,但是,我收到错误消息“'DT_REG' undeclared (first use in this function)”
代码片段是:

  DIR * dirp;
struct dirent * entry;
dirp = opendir(path);
if(entry->d_type == DT_REG) { //.... }
在我的生成文件中,我使用“cc -std=c11 -Wall -Werror -pedantic”。
任何想法的原因?

最佳答案

DT_REG不是 ISO C11 扩展的一部分。设置-std=c11严格只启用 C11 标准中定义的功能。
您可以使用feature macros启用其他扩展。如readdir manual提到,你需要_DEFAULT_SOURCE启用文件类型常量的宏。
您可以在包含 dirent.h 之前在源代码中执行此操作

#define _DEFAULT_SOURCE
#include <dirent.h>
或通过命令行作为编译器选项
cc -std=c11 -D_DEFAULT_SOURCE -Wall -Werror -pedantic

关于c - 'DT_REG Undeclared' 即使在函数中使用 <dirent.h> 头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69689586/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com