linux获取时间,精确到微秒usec

包含系统头文件:#include <sys/time.h>

用到的接口:

int gettimeofday(struct timeval *tv, struct timezone *tz);

计算时间间隔,精确到微秒:

1.首先获取任务起始时间值,使用上述接口,也可以封装,并记录到微秒

2.中途执行其他任务

3.再次获取任务结束时间值,使用上述接口,也可以简单封装

4.计算两次时间间隔,微秒转换为秒,单位为S,保留小数位数。

long long GetCurrentTime()
{
    struct timeval time;

    gettimeofday(&time,NULL);
    
    return (time.tv_sec * 1000000 + time.tv_usec);
}

double CalcTime_inusec(long long startusec, long long endusec)
{
    return (double)(endusec - startusec)/1000000.0;
}

举例:

int main ()
{
    long long startusec, endusec;
    double elaps;
    startusec = GetCurrentTime();
    /* do sth */
    
    endusec = GetCurrentTime();
    elaps = CalcTime_inusec(startusec, endusec);

    printf("do sth took %.4f seconds\n", elaps);/* 精确到小数点后四位输出值,单位为S */
}

猜你喜欢

转载自blog.csdn.net/qq_33195791/article/details/81812445