Предоставляет ли Linux монотонно увеличивающиеся часы для приложений - PullRequest
11 голосов
/ 17 октября 2008

Предоставляет ли Linux / Unix / Posix API-интерфейс для приложений пользовательского пространства для доступа к монотонно увеличивающимся часам с точностью до сотых и миллисекунд?

В Linux / proc / uptime предоставляет строковое представление числа с плавающей запятой количества секунд, в течение которых система работала.

gettimeofday (2) не обеспечивает монотонно увеличивающиеся часы.

Я мог бы использовать getitimer (2) во временной области ITIMER_REAL, настроить таймер на запуск с (зависящего от платформы) максимума и игнорировать сгенерированный сигнал, но в соответствии с man-страницей самый длинный таймер, для которого может работать таймер, составляет приблизительно 100 дней, что короче, чем я ожидал.

Ответы [ 2 ]

14 голосов
/ 17 октября 2008

Используйте функцию POSIX clock_gettime() с CLOCK_MONOTONIC. Подробнее см. Справочную страницу .

6 голосов
/ 17 октября 2008

Есть часы_время:

struct timespec tp;
clock_gettime(CLOCK_MONOTONIC, &tp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...