头文件:#include <sys/time.h> #include <unistd.h>
定义函数:int gettimeofday (struct timeval * tv, struct timezone * tz);
函数说明:gettimeofday()会把目前的时间有tv 所指的结构返回,当地时区的信息则放到tz 所指的结构中。
timeval 结构定义为:
struct timeval{
long tv_sec; //秒
long tv_usec; //微秒
};
timezone 结构定义为:
struct timezone
{
int tz_minuteswest; //和Greenwich 时间差了多少分钟
int tz_dsttime; //日光节约时间的状态
定义函数:int gettimeofday (struct timeval * tv, struct timezone * tz);
函数说明:gettimeofday()会把目前的时间有tv 所指的结构返回,当地时区的信息则放到tz 所指的结构中。
timeval 结构定义为:
struct timeval{
long tv_sec; //秒
long tv_usec; //微秒
};
timezone 结构定义为:
struct timezone
{
int tz_minuteswest; //和Greenwich 时间差了多少分钟
int tz_dsttime; //日光节约时间的状态
};
例子如下
- #include<sys/time.h>
- #include<math.h>
- #include<stdio.h>
- int function(void)
- {
- int a=0,b=0,sum=0;
- for(;a<300;a++)
- {
- for(;b<=100;b++)
- sum+=b;
- }
- return sum;
- }
- int main(void)
- { int sum;
- float timeuse;
- struct timeval t_start,t_stop;
- gettimeofday(&t_start,NULL);
- sum=function();
- gettimeofday(&t_stop,NULL);
- // timeuse=t_stop.tv_sec-t_start.tv_sec+(t_stop.tv_usec-t_start.tv_usec)/1000000;
- // 用这个计算结果是0.000000 精确度不高所至
- timeuse=(t_stop.tv_sec-t_start.tv_sec)*1000000+t_stop.tv_usec-t_start.tv_usec;
- timeuse/=1000000 ;
- printf("the programme run %f second/n the result of 1+2+3+....100 is %d/n ",timeuse,sum);
- return 0;
- }