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
",tv.tv_sec,tv.tv_usec);
sleep(2);
}
return 0;
}
调试一个函数执行时间时,可以使用两个timeval的变量,分别记录函数起始和函数结束时的时间,从而计算出该函数执行的时间消耗。