Есть ли стандартный способ преобразования 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