Как узнать текущее время в миллисекундах, используя & quot; time.h & quot; библиотека (только)?

Мне нужно также получить миллисекунды, используя только библиотеку «time.h».

На несколько секунд вот что у меня есть:

time_t now;
time(&now);

printf("seconds since  Jan 1, 1970 %d", now);

0

Решение

<time.h> или же <ctime> Заголовочные файлы, как указано в стандартах C и C ++ соответственно, не поддерживают подсекундную синхронизацию.

Если вы можете использовать C ++ и иметь совместимую с C ++ 11 среду, то вы можете получить портативную поддержку с помощью std::chrono функциональность. Там также есть boost::chrono это может быть использовано в более старых версиях C ++.

В противном случае вам придется перейти к конкретной системе, например, gettimeofday в Linux / Unix и SystemTime в винде. Для других ОС вам нужно посмотреть, какие функции времени есть, если они есть.

6

Другие решения

Обычно для этого можно использовать специфическую для ОС или стороннюю библиотечную функцию (например, clock_gettime в Linux). Однако, если вы в отчаянии и действительно не можете использовать какие-либо другие функции, вы можете заставить свою программу заняты — ждать и считать циклы процессора, используя clock() функция во времени Это, конечно, не очень хорошая идея — просто используйте один из множества других заголовочных файлов, которые предоставляют то, что вам нужно.

1

По вопросам рекламы [email protected]