clock_gettime 函数笔记

函数"clock_gettime"是基于Linux C语言的时间函数,他可以用于计算精度和纳秒。

#include
int clock_gettime(clockid_t clk_id,struct timespec *tp);

clk_id : 检索和设置的clk_id指定的时钟时间。

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

struct timespec

{

    time_t tv_sec; /* 秒*/

    long tv_nsec; /* 纳秒*/

}

测试代码:

#include 
#include 
#include 

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;
}

运行输出结果:

你可能感兴趣的:(linux)