
我正在編譯一些程式碼,透過-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,無條件提供它)的聲明?