Эквивалентный GetTickCount () на Linux

Я ищу эквивалент GetTickCount() на Linux.

В настоящее время я использую Python time.time() который, по-видимому, звонит до gettimeofday(). Мое беспокойство - то, что возвращенное время (эпоха Unix), может измениться беспорядочно, если часы смешаны с, такой как NTP. Простой процесс или системное стенное время, это только увеличивается положительно на постоянном уровне, был бы достаточен.

Какое-либо такое время функционирует в C, или Python существуют?

28
задан Giulio Vian 17 November 2014 в 08:47
поделиться

3 ответа

Вы можете использовать CLOCK_MONOTONIC, например, в C:

struct timespec ts;
if(clock_gettime(CLOCK_MONOTONIC,&ts) != 0) {
 //error
}

Смотрите этот вопрос для способа на Python - Как получить монотонную длительность времени в python?

27
ответ дан 28 November 2019 в 03:34
поделиться

Да, в ядре есть таймеры с высоким разрешением, но все по-другому. Я бы порекомендовал вам взглянуть на исходники любого странного проекта, который переносит это в переносимую форму.

Из C / C ++ я обычно использую #ifdef this и использую gettimeofday () в Linux, что дает мне разрешение в микросекундах. Я часто добавляю это как дробь к секундам, так как эпоха, которую я получаю, дает мне удвоение.

1
ответ дан 28 November 2019 в 03:34
поделиться

Вы должны использовать: clock_gettime (CLOCK_MONOTONIC, & tp); . На этот вызов не влияет настройка системного времени, как и на GetTickCount () в Windows.

5
ответ дан 28 November 2019 в 03:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: