私は現在、ソフトウェア プロジェクトの OS 関連機能を Linux から FreeBSD に移植しています。これにより、 FreeBSD 10.1 で定義されているgetpagesize
if を使用して、次の問題を認識しました。_POSIX_C_SOURCE=200809L
小さなテストプログラムを作成しました
#include <stdio.h>
#include <unistd.h>
int main(int argc, char **argv)
{
int i = getpagesize();
return 0;
}
私がコンパイルする場合は使用しています
cc test.c -o test
警告なしでコンパイルされます。しかし、定義すると(コードの他の部分で必要な関数_POSIX_C_SOURCE=200809L
の適切な POSIX 定義の結果)、次のようになります。getline
cc test.c -D_POSIX_C_SOURCE=200809L
test.c:5:10: warning: implicit declaration of function 'getpagesize' is invalid in C99 [-Wimplicit-function-declaration]
int i = getpagesize();
^
unistd.h
のマンページに記載されているように含めましたがgetpagesize
。まだ定義されている警告なしでコードをコンパイルするにはどうすればよい_POSIX_C_SOURCE
ですか?