在Windows平台上使用ansi-c我可以得到系统的时间高达毫秒的准确性?

我需要得到毫秒的准确性,我看看这个问题,但我在Windows上工作:它给POSIX函数的链接错误。

如果我能得到自1970年以来的UTC时间,毫秒级精度将是非常好的。

Solutions Collecting From Web of "在Windows平台上使用ansi-c我可以得到系统的时间高达毫秒的准确性?"

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

对不起,但是你不能使用ANSI C和Windows API。

可以使用GetSystemTime或使用GetSystemTimeAsFileTime以100纳秒的分辨率获得毫秒分辨率的系统时间,但准确性不会那么好。 系统时间仅在每个时钟间隔更新,这取决于底层体系结构(SMP,单处理器…)在10-15毫秒左右。

有多种方法可以使用不同复杂度的算法来推断系统时间,但是如果没有操作系统的支持,您将无法保证获得正确的高分辨率时钟时间。

在Windows API中有一个SYSTEMTIME结构和一些系统调用来获取你的机器的系统时间和本地时间,你可以这样实现它:

SYSTEMTIME系统时间;

GetSystemTime(&SYSTIME);

unsigned int millisec = systime.wMilliseconds;