Re: Программерам: как узнать разницу времени
Hi!
Только что такой же проблемой озаботились. Это POSIX.
times() на BSD благополучно переводится вместе с часами ;-), а это работает нормально,
проверено.
struct timespec t;
clock_gettime(CLOCK_MONOTONIC, &t);
В сообщении от Понедельник 11 сентября 2006 13:23 Max Dmitrichenko написал(a):
> Привет всем!
>
> Программерский вопрос.
>
> Хочу узнать в программе, сколько времени прошло между двумя событиями.
> Вроде простая задача: запомнил одно время, получил второе, из второго
> вычел первое - и делов-то. Но если задуматься:
> 1) time() и gettimeofday() не катят - юзер или демон ntp может это
> время поменять в промежутке между двумя событиями и мы получим
> неизвестно что.
> 2) times() - ман говорит, что в линуксе это время в тиках от старта
> системы. Если написать простейший тест и посчитать то, что он
> возвращает - то это нихрена не от старта, но то, что это не зависит
> от текущего времени - это факт.
>
> Но! В BSD этот же ман говорит, что times - obsoleted и возвращает
> время в тиках от 01.01.1970 00:00:00, что уже автоматические зависит
> от текущего времени. (Что он возвращает на самом деле, не проверял)
>
> 3) clock() у меня в линуксе хронически возвращает ноль и хоть убейся.
>
> Короче, кто-нибудь знает более-менее мультиплатформенный способ добыть
> такую информацию? Я думаю, что любая ОС в ядре её имеет - ядрённый
> таймауты должны же как-то работать вне зависимости от текущего времени.
> В линуксовом ядре, например, это jiffies. Но в юзерспейсе чего-то
> подобного не нашел.
>
> --
> Макс
>
>
--
Alexander Kogan
Institute of Applied Physics
Russian Academy of Sciences
Reply to: