Мне нужно также получить миллисекунды, используя только библиотеку «time.h».
На несколько секунд вот что у меня есть:
time_t now;
time(&now);
printf("seconds since Jan 1, 1970 %d", now);
<time.h>
или же <ctime>
Заголовочные файлы, как указано в стандартах C и C ++ соответственно, не поддерживают подсекундную синхронизацию.
Если вы можете использовать C ++ и иметь совместимую с C ++ 11 среду, то вы можете получить портативную поддержку с помощью std::chrono
функциональность. Там также есть boost::chrono
это может быть использовано в более старых версиях C ++.
В противном случае вам придется перейти к конкретной системе, например, gettimeofday
в Linux / Unix и SystemTime
в винде. Для других ОС вам нужно посмотреть, какие функции времени есть, если они есть.
Обычно для этого можно использовать специфическую для ОС или стороннюю библиотечную функцию (например, clock_gettime
в Linux). Однако, если вы в отчаянии и действительно не можете использовать какие-либо другие функции, вы можете заставить свою программу заняты — ждать и считать циклы процессора, используя clock()
функция во времени Это, конечно, не очень хорошая идея — просто используйте один из множества других заголовочных файлов, которые предоставляют то, что вам нужно.