Конвертировать GetTickCount() vxWorks в Linux

Я переношу некоторый код vxWorks в Linux.

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

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

?


person Community    schedule 11.10.2011    source источник


Ответы (1)


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;
}
person Robᵩ    schedule 11.10.2011