簡體   English   中英

在Windows平台上使用ansi-c我可以獲得系統時間精確​​到毫秒級嗎?

[英]using ansi-c on windows platform can i get time of system upto milliseconds accuracy?

我需要獲得毫秒級的精度我看看這個問題,但我正在研究Windows:它給出了POSIX函數的鏈接錯誤。

如果我能以1970毫秒的精度獲得UTC時間,那將是非常好的。

不是在ANSI C中,但Windows API提供了GetSystemTime函數,如下所示: http//msdn.microsoft.com/en-us/library/ms724950( GetSystemTime .aspx

抱歉,但您不能同時使用ANSI C和Windows API。

可以使用GetSystemTime或使用GetSystemTimeAsFileTime以100納秒的分辨率獲得毫秒分辨率的系統時間,但精度不會那么好。 系統時間僅在每個時鍾間隔更新,大約10-15毫秒,具體取決於底層架構(SMP,單處理器......)。

有一些方法可以使用不同復雜度的算法推斷系統時間,但如果沒有操作系統的支持,您將無法保證正確的高分辨率時鍾時間。

在windows api中有一個SYSTEMTIME結構和一些sys調用來獲取你機器的系統時間和本地時間,你可以用這種方式實現它:

SYSTEMTIME系統時間;

GetSystemTime(&SYSTIME);

unsigned int millisec = systime.wMilliseconds;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM