Текущее микросекундное время в С? - PullRequest
8 голосов
/ 14 марта 2011

Как я могу напечатать текущее время микросекунд в C на платформе Unix?

Ответы [ 4 ]

7 голосов
/ 14 марта 2011

В Linux и BSD вы можете использовать функцию gettimeofday().Это заполняет структуру timeval, которая имеет поле для секунд с начала эпохи и поле для микросекунд.Эта функция устарела.Более высокое разрешение clock_gettime () является предпочтительной заменой, однако Mac OS X не реализует ее.Я не уверен, реализует ли Windows что-либо из этого.

5 голосов
/ 14 марта 2011

Не существует переносного (мультиплатформенного) способа получения этого числа. Например, в Linux (или других системах POSIX) есть вызов gettimeofday , который обеспечивает именно эту точность (однако точность будет зависеть от того, будет ли эта синхронизация доступна и реализована на конкретном оборудовании).

2 голосов
/ 14 марта 2011

Стандарт С не предоставляет стандартных средств для этого. Однако функция clock() возвращает время в часах. в секунду CLOCKS_PER_SEC ЧАСОВ. На моей машине и в реализации CLOCKS_PER_SEC определяется как 1000. И clock, и CLOCKS_PER_SEC определены в <time.h>. Надеюсь, что это помогло

0 голосов
/ 14 марта 2011

Если вы используете Linux, я бы проверил этот сайт: http://rabbit.eng.miami.edu/info/functions/time.html В частности, функция gettimeofday.Который вы можете передать структуру, и получить время суток в микросекундах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...