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

本秂侑毒 提交于 2020-02-20 13:06:26

最近有个需求,需要数据库程序统计一次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编译运行即可,非常好用~

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!