我目前正在将软件项目的一些与操作系统相关的功能从 Linux 移植到 FreeBSD。getpagesize
因此,我认识到使用if _POSIX_C_SOURCE=200809L
在 FreeBSD 10.1 上定义的以下问题。
我创建了一个小测试程序
#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
(我在代码的其他部分需要的正确 POSIXgetline
函数定义的结果)我得到:
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
?