我正在编译一些代码,通过-D_POSIX_C_SOURCE=2
.
该代码包含标头<sys/time.h>
并想要调用gettimeofday
,但在 NetBSD 5.1 上,有一个关于该函数未声明的编译器警告。
查看 NetBSD 的标头,我们看到 的声明gettimeofday
包含了_POSIX_C_SOURCE
至少为 的测试200112
。
gettimeofday
POSIX 真的是2001 年才引入的吗?这似乎不太正确。 1993 年,已经有了clock_gettime
纳秒和不同的时钟类型,并且getttimeofday
是古老的 4.2 BSD 东西。
在 GNU C 库的 中<sys/time.h>
,gettimeofday
根本没有被任何东西包裹。
哪个是正确的:NetBSD 标头,还是我的代码依赖于_POSIX_C_SOURCE=2
揭示gettimeofday
(和 glibc,无条件提供它)的声明?