Конвертировать GetTickCount () vxWorks в Linux - PullRequest
2 голосов
/ 11 октября 2011

Я портирую некоторый код vxWorks на Linux.

Я посмотрел этот ответ , и он рекомендует CLOCK_MONOTONIC .Это подходящая замена для следующего определения:

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

?

1 Ответ

10 голосов
/ 11 октября 2011

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