POSIX-Konformität: NetBSD 5.1gettimeofday-Deklaration

POSIX-Konformität: NetBSD 5.1gettimeofday-Deklaration

Ich kompiliere einen Code, der die Konformität mit POSIX 1003.1 1993 anfordert -D_POSIX_C_SOURCE=2.

Der Code enthält den Header <sys/time.h>und möchte aufrufen gettimeofday, aber unter NetBSD 5.1 gibt es eine Compilerwarnung, dass diese Funktion nicht deklariert ist.

Wenn wir in den Header von NetBSD schauen, sehen wir, dass die Deklaration von gettimeofdaymit einem Test umschlossen ist, ob _POSIX_C_SOURCEsie mindestens ist 200112.

Wurde gettimeofdayPOSIX wirklich erst 2001 eingeführt? Das scheint kaum richtig. 1993 gab es bereits clock_gettimeNanosekunden und verschiedene Taktarten, und getttimeofdayes ist uraltes 4.2 BSD-Zeug.

<sys/time.h>In der GNU C - Bibliothek gettimeofdayist es durch überhaupt nichts umschlossen.

Was ist richtig: der NetBSD-Header oder mein Code, der sich darauf verlässt, _POSIX_C_SOURCE=2die Deklaration offenzulegen gettimeofday(und glibc, um sie bedingungslos bereitzustellen)?

Antwort1

http://pubs.opengroup.org/onlinepubs/009604599/functions/gettimeofday.htmlheißt es tatsächlich, dass es 2001 hinzugefügt wurde.

verwandte Informationen