Обеспечивает ли Linux монотонно увеличивающуюся тактовую частоту приложений?

StackOverflow https://stackoverflow.com/questions/211055

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

Это было полезно?

Решение

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

Другие советы

Есть clock_gettime:

struct timespec tp;
clock_gettime(CLOCK_MONOTONIC, &tp);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top