Есть ли стандартный способ преобразования struct timeval в struct timepec?

struct timeval представляет и мгновенно с двумя членами, tv_sec (секунды) и tv_usec (микросекунды). В этом представлении tv_usec само по себе не является абсолютным временем, это субсекундное смещение от tv_sec,

struct timespec работает так же, за исключением того, что вместо микросекунд это смещение (tv_nsec) хранится в наносекундных единицах.

Вопрос в том, существует ли стандартный способ конвертации между этими двумя?

2 ответа

Решение

Глядя на этот документ, я думаю, что умножение tv_usec на 1000 достаточно, чтобы получить tv_nsec,

Я подозреваю, что более важным является источник различных структур: они могут быть заполнены разными часами.

В sys/time.h Есть два макроса, которые делают то, что вы хотите:

TIMEVAL_TO_TIMESPEC(X, Y)

а также

TIMESPEC_TO_TIMEVAL(X, Y)

Смотрите документы здесь: http://www.daemon-systems.org/man/TIMEVAL_TO_TIMESPEC.3.html

Другие вопросы по тегам