struct timeval
представляет и мгновенное время с двумя членами, tv_sec
(секунды) и tv_usec
(микросекунды). В этом представлении tv_usec
само по себе не является абсолютным временем, это вспомогательное смещение от tv_sec
.Есть ли стандартный способ преобразования struct timeval в struct timespec?
struct timespec
работает одинаково, за исключением того, что вместо микросекунд его смещение (tv_nsec
) хранится в наносекундах.
Вопрос: Есть ли стандартный способ преобразования между этими двумя?
Поскольку tv_nsec является подгруппой второго смещения, а что если умножение на 1000 приводит к значению, превышающему 1 миллиард ... Разве вам не нужно было бы добавить 1 к tv_sec, а затем установить tv_nsec на сумму более 1 миллиарда? – dicroce
Нет, потому что 'tv_usec', будучи смещением в микросекундах, гарантированно будет меньше 1 миллиона, поэтому умножение на 1000 дает значение менее 1 миллиарда. – JaakkoK
И если вы хотите перейти от timepec к timeval, вы разделите 'tv_nsec' на 1000, чтобы получить' tv_usec' (возможно, сначала добавьте 500, чтобы округлить). – 2015-10-26 02:39:10