2008-10-17 5 views
11

Bietet Linux/Unix/Posix eine API für User-Space-Anwendungen, um auf eine monoton steigende Taktung mit einer Genauigkeit von Centisekunden bis Millisekunden zuzugreifen?Bietet Linux eine monoton steigende Taktung für Anwendungen

Unter Linux bietet/proc/uptime eine zeichenkettenbasierte Darstellung einer Fließkommazahl in der Anzahl der Sekunden, die das System aktiv war.

gettimeofday (2) bietet keinen monoton steigenden Takt.

Ich könnte getitimer (2) in der Zeitzone ITIMER_REAL verwenden, setze den Timer auf das (plattformabhängige) Maximum und ignoriere das generierte Signal, aber gemäß der Manpage ist der Timer am längsten 100 Tage, was kürzer ist als meine erwartete Laufzeit.

Antwort

14

Verwenden Sie die POSIX clock_gettime() Funktion mit CLOCK_MONOTONIC. Einzelheiten finden Sie unter man page.

6

Es gibt clock_gettime:

struct timespec tp; 
clock_gettime(CLOCK_MONOTONIC, &tp); 
Verwandte Themen