私が書いているいくつかの 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内の場所の上のソース コードをコンパイルしようとすると発生します。
$ cat test.c #include <sys/stat.h> ino_t inode; $ uname -srm Linux 3.8.0-26-generic x86_64 $ lsb_release -d 説明: Ubuntu 13.04 $ gcc -c test.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の定義が表示されるのはなぜですか?