Что такое единица измерения gettimeofday()?

У меня есть программа для расчета задержки объекта в паб-модель. Я использовал следующую функцию для отметки времени:

uint64_t GetTimeStamp() {
    struct timeval tv;
    gettimeofday(&tv,NULL);
    return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
}

Задержка измеряется как разница меток времени в издателе и подписчике. Итак, меня беспокоит единица измерения задержки. Это в секундах или микросекундах??

2 ответа

Решение

timeval структура имеет tv_sec, который дает вам абсолютное значение для секунд, и tv_usec, который дает вам оставшуюся долю в микросекундах.

Таким образом, вы можете получить разрешение в микросекундах.

Для получения дополнительной информации, http://www.gnu.org/software/libc/manual/html_node/Elapsed-Time.html

tv.tv_sec дает второй счет, tv.tv_usec - оставшийся микросекундный счет.

Для принципа gettimeofday() и его точности:

Как микросекундное время linux gettimeofday() получается и какова его точность?

Обязательно ли gettimeofday() имеет микросекундное разрешение?

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