欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-24 09:22:34
...

包含系统头文件:#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 */
}