linux中获取系统时间 gettimeofday函数
linux的man页中对gettimeofday函数的说明中,有这样一个说明:
$ man gettimeofday
DESCRIPTION
The functions gettimeofday and settimeofday can get and set the time as
well as a timezone. The tv argument is a timeval struct, as specified
in <sys/time.h>:
struct timeval {
time_t tv_sec; /* seconds */
suseconds_t tv_usec; /* microseconds */
};
该函数以及Linux内核返回的timeval类型的时间值,tv_usec代表的是微秒精度(10的-6次方秒)。
使用举例
#include <stdio.h> #include <sys/time.h> #include <time.h> int main(int argc,char * argv[]) { struct timeval tv; while(1) { gettimeofday(&tv,NULL); printf("time %u:%u\n",tv.tv_sec,tv.tv_usec); sleep(2); } return 0; }
调试一个函数执行时间时,可以使用两个timeval的变量,分别记录函数起始和函数结束时的时间,从而计算出该函数执行的时间消耗。