2017-03-29 5 views
0

J'utilise POSIX clock_gettime (CLOCK_REALTIME, & curr_time) pour obtenir l'heure actuelle de l'horloge CLOCK_REALTIME. Je comprends la différence entre CLOCK_REALTIME et CLOCK_MONOTONIC. Cependant, ce que je ne sais pas est l'époque associée à CLOCK_REALTIME. Ma première supposition était que ce serait les secondes écoulées/nanosecondes depuis l'époque UTC. Cependant, la valeur que j'obtiens est ~ 180000 secondes, soit ~ 50 heures. Évidemment, pas le temps écoulé depuis l'époque UTC.L'horloge POSIX 'CLOCK_REALTIME' doit-elle être référencée à l'époque UTC?

Alors ma question: à quoi correspond CLOCK_REALTIME? Redémarrer? Plate-forme specfic? UTC et je fais juste quelque chose de mal?

Merci,

+0

Montrez-nous le code que vous avez utilisé, 'CLOCK_REALTIME' devrait être (aujourd'hui) dans l'ordre d'un milliard et demi (obtenu il y a quelques minutes 1491312994). –

Répondre

1

CLOCK_REALTIME est liée à l'époque Unix (« epoch UTC » est la même chose, mais n'est pas la bonne façon de le nommer. Il est juste l'époque Unix dans le fuseau horaire UTC).

Essayez ce code:

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 
#include <time.h> 

int main(void) 
{ 
    struct timespec ts; 
    clock_gettime(CLOCK_REALTIME, &ts); 
    printf("%ld\n", ts.tv_sec); 
    exit(0); 
}