POSIX準拠: NetBSD 5.1gettimeofday 宣言

POSIX準拠: NetBSD 5.1gettimeofday 宣言

を介して POSIX 1003.1 1993 準拠を要求するコードをコンパイルしています-D_POSIX_C_SOURCE=2

コードにはヘッダーが含まれており<sys/time.h>、 を呼び出す必要がありますgettimeofdayが、NetBSD 5.1 ではその関数が宣言されていないというコンパイラー警告が表示されます。

NetBSD のヘッダーを調べてみると、 の宣言が少なくとも であるgettimeofdayことのテストで囲まれていることがわかります。_POSIX_C_SOURCE200112

本当に POSIX に導入されたのは 2001 年になってからでしょうかgettimeofday? それは正しくないように思えます。1993 年には、すでにclock_gettimeナノ秒とさまざまなクロック タイプが存在しており、これgetttimeofdayは古い 4.2 BSD のものです。

GNU C ライブラリの では<sys/time.h>gettimeofdayは何にもラップされていません。

どちらが正しいのでしょうか: NetBSD ヘッダー、それとも の_POSIX_C_SOURCE=2宣言を明らかにするために に依存する私のコードgettimeofday(およびそれを無条件に提供する glibc)?

答え1

http://pubs.opengroup.org/onlinepubs/009604599/functions/gettimeofday.html確かに2001年に追加されたと書かれています。

関連情報