В Пнд, 11/09/2006 в 13:23 +0400, Max Dmitrichenko пишет: > Привет всем! > > Программерский вопрос. > > Хочу узнать в программе, сколько времени прошло между двумя событиями. > Вроде простая задача: запомнил одно время, получил второе, из второго > вычел первое - и делов-то. Но если задуматься: > 1) time() и gettimeofday() не катят - юзер или демон ntp может это > время поменять в промежутке между двумя событиями и мы получим > неизвестно что. > 2) times() - ман говорит, что в линуксе это время в тиках от старта > системы. Если написать простейший тест и посчитать то, что он > возвращает - то это нихрена не от старта, но то, что это не зависит > от текущего времени - это факт. > > Но! В BSD этот же ман говорит, что times - obsoleted и возвращает > время в тиках от 01.01.1970 00:00:00, что уже автоматические зависит > от текущего времени. (Что он возвращает на самом деле, не проверял) > > 3) clock() у меня в линуксе хронически возвращает ноль и хоть убейся. > > Короче, кто-нибудь знает более-менее мультиплатформенный способ добыть > такую информацию? Я думаю, что любая ОС в ядре её имеет - ядрённый > таймауты должны же как-то работать вне зависимости от текущего времени. > В линуксовом ядре, например, это jiffies. Но в юзерспейсе чего-то > подобного не нашел.
Всю жизнь использовал time(). Тебе какая почность то нужна? Кстати, прыжки времени (особенно сильные) это далеко не штатная ситуация, и пытаться отследить их я бы не стал. Тем более, что если стоит ntp, это некая гарантия, что прыжки не будут превышать какую-то небольшую велечину. time() - это стандартное решение для всех (если не ошибаюсь) *unix*ов, и не надо задумываться. Иначе можно дойти до програмного ECC памяти :-). -- Покотиленко Костик <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

