2015-06-17 19 views
3

使用boost::chrono::steady_clockstd::chrono::steady_clock是假設,以保證身體的時間總是單調的,並不會受到系統日期時間的變化。這是我的問題,如果我有兩個進程需要對系統日期時間更改進行免疫,是否足以交換time_since_epoch?換句話說,這兩個過程的時間解釋是同一時代以來的一樣嗎?具體而言,我需要回答Windows和QNX的這個問題。相對於操作系統啓動時的steady_clock的時代嗎?或流程本身?

編輯:這兩個過程都在同一計算機上,相同的操作系統上運行,並通過IPC呼叫通信。

回答

3

否時間不是系統之間互換,因爲C++不指定時期。時代取決於操作系統,不同的系統可能有不同的時代。

如果,另一方面,你只共享本地時間,在同一系統中,那麼也沒關係。

+0

@DarienPardinas然後你很好去。 :) –

1

C++標準說約steady_clock

20.12.7.2類steady_clock [time.clock.steady]

類steady_clock的對象代表的時鐘,其time_point的值從不減少爲物理時間並且其中time_point的值相對於實時以穩定的速率前進。也就是說,時鐘可能不會被調整。

比較這對什麼標準不得不說的system_clock

20.12.7.1類SYSTEM_CLOCK [time.clock.system]

類SYSTEM_CLOCK的對象代表掛鐘時間來自系統範圍的實時時鐘。

有沒有提到steady_clock是「全系統」,這使我相信,根據C++標準,你不能在兩個steady_clocks不同進程信任具有相同時期在同一臺機器上。

相關問題