在C语言中获取当前微秒时间?

8
如何在Unix平台上用C语言打印当前微秒时间?

1
可能是Get a timestamp in C in microseconds?的重复问题。现在可以使用C11中的timespec_get:https://dev59.com/EW025IYBdhLWcg3wvIgo#36095514 - Ciro Santilli OurBigBook.com
4个回答

7
在Linux和BSD中,您可以使用 gettimeofday()函数。这将填充一个 timeval 结构,其中包含自纪元以来的秒数和微秒数字段。此功能已弃用。更高分辨率的 clock_gettime() 是首选替代方法,但Mac OS X没有实现它。我不确定Windows是否实现了这两个功能。

如果您在OS X上需要高于微秒级别的分辨率,请尝试以下答案:https://dev59.com/OG435IYBdhLWcg3w3EIi - Matt K

5

目前没有一种便携式(多平台)的方法来获取那个数字。例如,在Linux(或其他POSIX系统)上,有一个称为gettimeofday的调用,提供了精确到微秒的精度(但准确性取决于特定硬件上是否可用且实现)。


1
严格来说,我认为它提供了精度,但不一定准确。但据我所知,这是你在挂钟时间方面能得到的最好结果。 - Steve Jessop
@Steve Jessop:谢谢。已更正。 - 6502

2

C标准没有提供标准的方法。但是clock()函数以CLOCK为单位返回时间。一秒钟有CLOCKS_PER_SEC个CLOCK。在我的机器和实现中,CLOCKS_PER_SEC被定义为1000。 clockCLOCKS_PER_SEC均在<time.h>中定义。希望这有所帮助。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接