Программерам: как узнать разницу времени
Привет всем!
Программерский вопрос.
Хочу узнать в программе, сколько времени прошло между двумя событиями.
Вроде простая задача: запомнил одно время, получил второе, из второго
вычел первое - и делов-то. Но если задуматься:
1) time() и gettimeofday() не катят - юзер или демон ntp может это
время поменять в промежутке между двумя событиями и мы получим
неизвестно что.
2) times() - ман говорит, что в линуксе это время в тиках от старта
системы. Если написать простейший тест и посчитать то, что он
возвращает - то это нихрена не от старта, но то, что это не зависит
от текущего времени - это факт.
Но! В BSD этот же ман говорит, что times - obsoleted и возвращает
время в тиках от 01.01.1970 00:00:00, что уже автоматические зависит
от текущего времени. (Что он возвращает на самом деле, не проверял)
3) clock() у меня в линуксе хронически возвращает ноль и хоть убейся.
Короче, кто-нибудь знает более-менее мультиплатформенный способ добыть
такую информацию? Я думаю, что любая ОС в ядре её имеет - ядрённый
таймауты должны же как-то работать вне зависимости от текущего времени.
В линуксовом ядре, например, это jiffies. Но в юзерспейсе чего-то
подобного не нашел.
--
Макс
Reply to: