最近要为自己的项目开发一个日志模块,需要获取精确到微秒级的系统时间,查阅了一些资料,发现在C/C++里面可以通过 gettimeofday(struct timeval * tv,struct timezone * tz) 和 localtime(const time_t * timep) 这两个函数的配合使用来得到我想要的结果。
先贴一下这两个函数的说明:
gettimeofday
头文件:#include <sys/time.h> #include <unistd.h>
定义函数:int gettimeofday (struct timeval * tv, struct timezone * tz);
函数说明:gettimeofday()会把目前的时间有tv 所指的结构返回,当地时区的信息则放到tz 所指的结构中。时间是从公元 1970 年1 月1 日的UTC 时间从0 时0 分0 秒算起到现在所经过的时间。
timeval 结构定义为:
struct timeval{
long tv_sec; //秒
long tv_usec; //微秒
};