gettimeofday - объяснение точного значения структуры timeval поля - PullRequest
4 голосов
/ 20 февраля 2011

Я пытаюсь написать простую функцию на C, которая бы вычисляла разницу между двумя моментами в наносекундах. Для этого я подумал об использовании функции gettimeofday, которая обновляет поля данной структуры timeval.

Как сказано на странице руководства, поля struct timeval:

time_t      tv_sec;     /* seconds */  
suseconds_t tv_usec;    /* microseconds */  

Мой вопрос таков:

Является ли поле tv_usec ВСЕМ ВРЕМЕНЕМ, прошедшим со времени EPOCH в микросекундах, или это просто остаток времени в микросекундах?

Например, если пройденное время составляет 100 секунд и 25 микросекунд, будет ли поле tv_usec иметь значение «25» или значение «100000025»?

Большое спасибо.

1 Ответ

4 голосов
/ 20 февраля 2011

Это остаток.

Это остаток прошедшего времени (доли секунды), представленный в виде числа микросекунд. Это всегда меньше миллиона.

...