Linux fornisce un clock monotonicamente crescente alle applicazioni
Domanda
Linux / Unix / Posix fornisce un'API alle applicazioni dello spazio utente per accedere a un clock in aumento monotono, con precisione da centisecondo a millisecondo?
Su Linux, / proc / uptime fornisce una rappresentazione basata su stringa di un numero in virgola mobile del numero di secondi in cui il sistema è attivo.
gettimeofday (2) non fornisce un orologio monotonicamente crescente.
Potrei usare getitimer (2) nel dominio del tempo ITIMER_REAL, impostare il timer per iniziare al massimo (dipendente dalla piattaforma) e ignorare il segnale generato, ma secondo la pagina man il tempo più lungo per cui il timer può funzionare è di circa 100 giorni, che è più breve del mio tempo di esecuzione previsto.
Soluzione
Utilizza la funzione POSIX clock_gettime ()
con CLOCK_MONOTONIC
. Vedi la pagina man per i dettagli.
Altri suggerimenti
C'è clock_gettime:
struct timespec tp;
clock_gettime(CLOCK_MONOTONIC, &tp);