clock_gettime alternative dans Mac OS X

Lors de la compilation d'un programme que j'ai écrit sur Mac OS X après avoir installé les bibliothèques nécessaires par MacPorts, j'obtiens cette erreur:

In function 'nanotime':
error: 'CLOCK_REALTIME' undeclared (first use in this function)
error: (Each undeclared identifier is reported only once
error: for each function it appears in.)

Il semble que clock_gettime n'est pas mis en œuvre dans Mac OS X. Est-t-il un autre moyen d'accéder à la époque dans nanosecondes? Malheureusement gettimeofday est dans microsecondes.

  • Ma documentation dit "Toutes les implémentations de soutien à l'échelle du système en temps réel de l'horloge, qui est identifié par CLOCK_REALTIME." Avez-vous #include <time.h>?
  • Oui, j'ai inclus time.h. Aussi, man gettimeofday fonctionne sur OSX, tandis que man clock_gettime ne le fait pas.
  • Essayez également cc -g `pkg-config --cflags libcurl glib-2.0 libpcre libconfuse` -D_POSIX_C_SOURCE=199309L -c getbooru-util.c
  • Cela n'a pas aidé. clock_gettime n'est pas mis en œuvre dans Mac OS X.
  • Sur mon système (Debian), de lien j'ai besoin de la librt de la bibliothèque.
  • Je sais. Il est dans ma ligne de commande liens. Je ne me lève pas à l'étape de lien à tous. Mac OS X n'a pas clock_gettime, alors que Linux n'.
  • J'ai écrit une petite enveloppe pour ceci: gist.github.com/alfwatt/3588c5aa1f7a1ef7a3bb
  • Notez que macOS Sierra 10.12 (septembre 2016, XCode, 8) et, plus tard, prend en charge clock_gettime() directement — comme indiqué dans ce répondre par James Wald.