将GetTickCount() vxWorks转换为Linux

Convert GetTickCount() vxWorks to Linux

本文关键字:转换 Linux vxWorks GetTickCount      更新时间:2023-10-16

我正在将一些vxWorks代码移植到Linux上。

我看了这个答案,它推荐CLOCK_MONOTONIC。这是否适合替换以下定义:

#define GetTickCount()    ((1000.0 * (double)tickGet())/((double)sysClkRateGet())))

?

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;
}