【发布时间】:2011-07-15 07:05:38
【问题描述】:
如何在 Unix 平台上以 C 语言打印当前微秒时间?
【问题讨论】:
-
Get a timestamp in C in microseconds? 的可能重复现在可以使用来自 C11 的
timespec_get:stackoverflow.com/a/36095514/895245
如何在 Unix 平台上以 C 语言打印当前微秒时间?
【问题讨论】:
timespec_get:stackoverflow.com/a/36095514/895245
没有可移植(多平台)的方式来获取该号码。例如,在 Linux(或其他 POSIX 系统)上,调用 gettimeofday 提供了准确的精度(但精度取决于该时间是否可用并在特定硬件上实现)。
【讨论】:
在 Linux 和 BSD 中,您可以使用 gettimeofday() 函数。这将填充一个 timeval 结构,该结构具有一个自纪元以来的秒数和微秒数的字段。此功能已弃用。更高分辨率的clock_gettime() 是最受欢迎的替代品,但是 Mac OS X 没有实现它。我不确定 Windows 是否实现了其中任何一个。
【讨论】:
C 标准没有为此提供标准方法。但是clock() 函数以 CLOCK 的形式返回时间。一秒钟内有CLOCKS_PER_SEC CLOCK。在我的机器和实现中,CLOCKS_PER_SEC 定义为 1000。clock 和 CLOCKS_PER_SEC 都在 <time.h> 中定义。希望这有帮助
【讨论】:
如果您使用的是 linux,我会查看此站点:http://rabbit.eng.miami.edu/info/functions/time.html 特别是“gettimeofday”功能。您可以传递一个结构,并以微秒为单位获取一天中的时间。
【讨论】: