我正在将一些vxWorks代码移植到Linux。
我查看了此answer,并建议CLOCK_MONOTONIC。这是以下定义的合适替代品:
#define GetTickCount() ((1000.0 * (double)tickGet())/((double)sysClkRateGet())))
答案 0 :(得分:9)
GetTickCount是这样描述的Windows API:
检索自系统启动以来经过的毫秒数,最多49.7天
是的,CLOCK_MONOTONIC是正确使用的POSIX时钟。这是未经测试的代码:
double GetTickCount(void)
{
struct timespec now;
if (clock_gettime(CLOCK_MONOTONIC, &now))
return 0;
return now.tv_sec * 1000.0 + now.tv_nsec / 1000000.0;
}