2010-02-12 69 views
2

當從時間服務器或由於DST更改而更新系統時間時,是否有辦法獲得通知?我正在進行API /系統調用或具有同等功能。linux - 檢測系統時間的變化

在不使用SQL的情況下,優化爲類似於SQL NOW()的值生成一個小時粒度的值是我們的一部分或我的努力。

+0

爲什麼你不需要使用系統調用來獲取當地時間? – Romain 2010-02-12 12:12:21

+0

@Romain:對我的應用來說太貴了。 – 2010-02-12 12:31:10

+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 2016-09-01 17:21:47

回答

1

clock_gettime在最新的Linux系統上速度非常快,而且通常也非常精確;你可以使用clock_getres找出精確度。但對於小時級別的時間戳,gettimeofday可能更方便,因爲它可以爲您調整時區。

只需調用相應的系統調用,並在每次需要時間戳時將其劃分爲幾小時; NTP的所有其他時間調整或任何已經爲您完成的事情。

4

我不知道是否有通知系統時間的變化的一種方式,但

  • 系統時間存儲爲UTC,所以從來沒有因爲DST的變化變更通知。

  • 如果我的記憶是正確的,NTP deamon通常會通過改變速度來調整時鐘,而不需要通知變化。

因此,只有在不常見的操作之後纔會通知您。