2010-02-12 3 views
2

Есть ли способ получить уведомление при обновлении системного времени с сервера времени или из-за изменения DST? Я получаю API/системный вызов или эквивалент.linux - обнаружение изменения системного времени

Это часть или мое усилие, чтобы оптимизировать генерирование значения для чего-то похожего на SQL NOW() на часовую детализацию без использования SQL.

+0

Почему вы не используете системные вызовы, чтобы получить местное время, когда вам это нужно? – Romain

+0

@Romain: Слишком дорого для моего приложения. –

+0

См. Также https://stackoverflow.com/questions/10496531/is-it-possible-in-c-c-in-linux-to-get-informed-when-a-specified-date-time-is-r – user

ответ

1

clock_gettime на самых последних системах Linux невероятно быстро и, как правило, довольно удивительно точно; вы можете узнать точность, используя clock_getres. Но для отметки времени в часах gettimeofday может быть более удобным, так как он может регулировать часовой пояс для вас.

Просто позвоните на соответствующий системный вызов и выполните деление на часы каждый раз, когда вам нужна отметка времени; все другие корректировки времени от NTP или что-то еще уже сделано для вас.

4

Я не знаю, есть ли способ получить уведомление об изменении системного времени, но

  • системное время хранятся в UTC, так что никогда не изменение из-за летнее время изменение для получения уведомления.

  • Если моя память правильная, NTP deamon обычно регулирует часы, изменяя скорость, и снова никаких изменений для уведомления.

Таким образом, единственное время, когда вы будете уведомлены об этом, - это необычная манипуляция.