函数 clock_gettime

int  clock_gettime(clockid_t clk_id, struct timespect *tp)   

函数作用:提供了纳秒级的精确度

头文件 <time.h>
函数原型

​int clock_gettime(clockid_t clk_id, struct timespect *tp);

  参数说明:
  clockid_t clk_id 用于指定计时时钟的类型,有以下4种:

CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC 1970-1-1 0:0:0开始计时,中间时刻如果系统时间被用户该成其他,则对应的时间相应改变
CLOCK_MONOTONIC:从系统启动这一刻起开始计时,不受系统时间被用户改变的影响
CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间
CLOCK_THREAD_CPUTIME_ID:本线程到当前代码系统CPU花费的时间

struct timespect *tp 用来存储当前的时间,其结构如下:     

   struct timespec
   {
       time_t tv_sec; /* seconds */
       long tv_nsec; /* nanoseconds */
   };
  返回值:0成功,-1失败

clock_gettime代码示例

/********************** 
struct timespec
   {
       time_t tv_sec; /* seconds */
       long tv_nsec; /* nanoseconds */
   };
  返回值:0成功,-1失败

**********************/

#include <time.h>
#include <stdio.h>
#include <unistd.h>
 
int main(int argc, char **argv)
{
    struct timespec time1 = {0, 0}; 
    struct timespec time2 = {0, 0};
	
    float temp;
 
    clock_gettime(CLOCK_REALTIME, &time1);      
    usleep(1000);
    clock_gettime(CLOCK_REALTIME, &time2);   
    temp = (time2.tv_nsec - time1.tv_nsec) / 1000000;
    printf("time = %f ms\n", temp);
    return 0;
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐