2011-04-19 52 views
1

我想通过移植我的一个应用程序来学习c语言。我正在寻找一个适用于linux,mac和windows的高分辨率定时器。C中的跨平台高分辨率定时器?

试图保持与ANSI C99的东西。我使用的是mingw和gcc,所以任何GNU库都应该没问题?

我看着time.h;但是我读到的所有关于时钟的警告(cpu ticks)在跨平台上都不可靠,也不能获得小于1秒分辨率的“实时”(而不是cpu时间)。

有没有像C的Boost的库?

+0

这不是最漂亮的解决方案,但您也可以使用'GLFW'库(小型OpenGL支持库)中的高精度定时器。它便于携带,它使用系统中可用的最高精度计时器。因此,精度可能会在不同的平台上有所不同。 – 2011-04-19 11:33:13

+0

GLFW计时器已被弃用。 – user697111 2011-04-22 02:41:42

+1

不,不建议不要使用GLFW中的时间输入。 – elmindreda 2012-08-08 21:51:39

回答

1

从sys/time.h尝试gettimeofday。虽然这不是高分辨率定时器,但它比time函数更精确。

0

您能解释一下clock()不是“可靠的”吗?该函数返回一个类型clock_t的值,该值表示从程序启动后已经经过了多少滴答。每秒的滴答数由宏CLOCKS_PER_SEC定义,该宏在大多数系统上为1000,这意味着每个滴答对应毫秒的时间。希望这个决议是足够的。

+0

clock - 返回程序消耗的处理器时间。这不是“墙”的时间 – DanJ 2014-09-21 16:46:50