#include <sys/stat.h>
ino_t inode;
根据POSIX.1-2008,头文件
ino_t
1:
blkcnt_t
、
blksize_t
、
dev_t
、
ino_t
、
mode_t
、
nlink_t
、
uid_t
、
gid_t
、
off_t
和
time_t
类型,如
当我试图在Linux系统上编译文件test.c中的上面的源代码时,就会发生这种情况:
$ cat test.c #include <sys/stat.h> ino_t inode; $ uname -srm Linux 3.8.0-26-generic x86_64 $ lsb_release -d Description: Ubuntu 13.04 $ gcc -c test.c $ gcc -std=c90 test.c test.c:2:1: error: unknown type name 'ino_t' $ gcc -std=c99 test.c test.c:2:1: error: unknown type name 'ino_t' $ gcc -std=c1x test.c test.c:2:1: error: unknown type name 'ino_t'
当我指定任何-std选项时,为什么ino_t
的定义不是revelead?
我的fstat
手册页面说还包括sys/types.h
,这为我解决了这个问题。sys/stat.h
中ino_t
的定义由功能宏__use_xopen
和__use_xopen2k
保护。sys/types.h
中的定义不受这种保护。
手册页面还提到包含unistd.h
,但这并不是解决问题所必需的。
根据feature_test_macros
的手册页:
我猜这意味着任何XOPEN功能也被关闭了。然而,我找不到任何关于这一点的描述。
附注。看来R.(见下文)感觉这在feature_test_macros
的手册页中也有描述,但我有限的大脑无法找到确切的措词,所以我想把它留给读者做一个练习。如果它被描述在任何地方,那么我会期待它在手册页确实。
当心这个答案的要旨是这样的:
https://godbolt.org/z/P97MaK 我玩的概念和预期d::is_equality_comparable工作矢量,但它没有。 编译错误在 内部失败,而不是在受概念保护的函数边界处失败。 这是错误还是预期行为?
问题内容: 我在linux中有一个应用程序,该应用程序已成功编译。我想在Windows中运行相同的程序。 但是编译会产生以下与头文件有关的错误。 找不到sys / select.h 找不到termios.h 我怎样才能解决这个问题? 问题答案: Windows API在结构上和风格上与任何Unix风格提供的系统调用和库例程的组合都非常不同。 期限 Windows使用与任何* nix系统完全不同的模
在过去的几个月里,我一直在学习C语言并使用终端。我的代码使用g和c11编译并运行得很好,但在过去几天里它开始出现错误,此后我在编译时遇到了问题。我唯一可以编译和运行的程序依赖于旧的C标准。 我第一次遇到的错误包括 尝试使用ecg$g-o stoi_试验stoi_试验编译。cpp-std=c 11 大堆cpp:13:22:错误:命名空间“std”中没有名为“stoi”的成员;你是说“阿托伊”吗?in
我是生锈新手,一直在浏览源代码,发现了这个: 这个函数定义这样的内部函数有什么原因吗?为什么不直接写:
我遇到了一个有趣的问题,我不明白发生了什么: 据我所知,我提供的单个整数参数可以解释为使用参数调用构造函数,也可以解释为使用初始化列表的构造函数。似乎只有当我提供左值时才调用initialiser_list构造函数,但当我提供r-value(至少是文字)时,构造函数。为什么会这样? 这也意味着: 结果仅为大小为1的向量; 结果是一个大小为num\u元素的向量,但我认为应该避免这种初始化,因为偶尔会