Ответ 1
Используйте функцию POSIX clock_gettime()
с помощью CLOCK_MONOTONIC
. Подробнее см. справочная страница.
Предоставляет ли Linux/Unix/Posix API-приложения для пользовательского пространства для доступа к монотонно возрастающим часам с точностью от секунды до миллисекунды?
В Linux/proc/uptime предоставляет строковое представление числа с плавающей запятой числа секунд, в течение которого система была.
gettimeofday (2) не обеспечивает монотонно увеличивающиеся часы.
Я мог бы использовать getitimer (2) в временном домене ITIMER_REAL, установить таймер на максимум (зависит от платформы) и проигнорировать генерируемый сигнал, но согласно man-странице, для которой наибольший таймер может работать, это примерно 100 дней, что меньше ожидаемого времени выполнения.
Используйте функцию POSIX clock_gettime()
с помощью CLOCK_MONOTONIC
. Подробнее см. справочная страница.
Существует clock_gettime:
struct timespec tp;
clock_gettime(CLOCK_MONOTONIC, &tp);