![POSIX 一致性:NetBSD 5.1gettimeofday 声明](https://linux22.com/image/22369/POSIX%20%E4%B8%80%E8%87%B4%E6%80%A7%EF%BC%9ANetBSD%205.1gettimeofday%20%E5%A3%B0%E6%98%8E.png)
我正在编译一些代码,通过-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,无条件提供它)的声明?