高精度计时器,windows,linux,voworks
本文主要介绍 Linux 下高精度时间函数,及相关的具有超时机制的函数,对定时器也进行简单的介绍。 在linux下通常可用的精度最高的时间接口是gettimeofday,它返回一个timeval结构,其精度为us,即10-6 秒,大多数情况这个精度已经够用了。不过有时为了更高的精度,比如纳秒级的时间精度,我们需求探索Linux为我们提供的时间调用。 首先介绍struct timespec结构,这个结构体有两个成员,一个是秒,一个是纳秒。 在librt库中,提供了高精度的时间函数,分别是: long clock_gettime(clockid_t ,struct timespec*) 获取特定时钟的时间,时间通过fp结构传回,目前定义了6种时钟,分别是 CLOCK_REALTIME 系统当前时间,从1970年1.1日算起 CLOCK_MONOTONIC 系统的启动时间,不能被设置 CLOCK_PROCESS_CPUTIME_ID 进程运行时间 CLOCK_THREAD_CPUTIME_ID 线程运行时间 CLOCK_REALTIME_HR CLOCK_REALTIME的高精度版本 CLOCK_MONOTONIC_HR CLOCK_MONOTONIC的高精度版本 获取特定时钟的时间精度: long clock_getres(clockid_t ) 设置特定时钟的时间: long