我正在编写的一些 C 代码遇到一个奇怪的问题。考虑以下代码:
#include <sys/stat.h>
ino_t inode;
根据POSIX.1-2008,头文件<sys/stat.h > 定义ino_t
1:
< sys/stat.h>标头应定义<sys/types.h>
blkcnt_t
中所述的、blksize_t
、dev_t
、ino_t
、mode_t
、nlink_t
、uid_t
、gid_t
、off_t
和time_t
类型。
当我尝试在我的 Linux 系统上的文件test.c中编译上面的源代码时,就会发生这种情况:
$猫测试.c #include <sys/stat.h> ino_t 索引节点; $ unname -srm Linux 3.8.0-26-通用 x86_64 $ lsb_release -d 说明:Ubuntu 13.04 $ gcc -c 测试.c $ gcc -std=c90 test.c test.c:2:1:错误:未知类型名称“ino_t” $ gcc -std=c99 test.c test.c:2:1:错误:未知类型名称“ino_t” $ gcc -std=c1x test.c test.c:2:1:错误:未知类型名称“ino_t”
为什么在我指定任何-std选项时定义为ino_t
not revelead ?