Существует ли стандартный способ преобразования структуры timeval в структуру timespec?

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