linux C获取时间戳(精确到毫秒)

最近有个需求,需要数据库程序统计一次sql查询的过程耗时多久,于是乎就需要程序获取当前时间戳,由于这个时间非常短,因此需要精确的毫秒,话不多说,直接给程序~

#include <stdlib.h>
#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
int main(){
    //执行sql之前
    struct timeval begin;
    gettimeofday(&begin,NULL);
    long long beginTime = (long long)begin.tv_sec * 1000 + (long long)begin.tv_usec / 1000;
    printf("beginTime is:%ld\n",beginTime);
    
    //执行sql的过程
    sleep(5);
    
    //sql执行之后
    struct timeval end;
    gettimeofday(&end,NULL);
    long long endTime = (long long)end.tv_sec * 1000 + (long long)end.tv_usec / 1000;
    printf("endTime is:%ld\n",endTime);
    long long interval = endTime - beginTime;
    printf("mysql_handle_time:%ld@\n",interval);

    return 0;
}

执行结果如下:

这段程序,不需要任何额外的库,放到linux上gcc编译运行即可,非常好用~

发布了39 篇原创文章 · 获赞 25 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/u013536232/article/details/104375935