C语言获取微秒级的系统时间 gettimeofday timeval timeout
gettimeofday
头文件
#include<sys/time.h> #include<unistd.h>
函数原型
int gettimeofday(struct timeval *tv,struct timezone *tz);
函数功能
gettimeofday会把时间返回到tv所指的结构体中,将时区信息返回到tz所指的结构体中
返回值
成功返回0 失败返回-1
两个参数tv和tz都可以为空,若为空,不返回其对应的结构体
两个结构体:
struct timeval{
long tv_sec; //秒
long tv_usec; //微秒
};
struct timezone{
int time_minuteswest; //和格林威治时间相差多少分钟
int time_dsttime; //日光节约时间的状态
};
举例:
#include<stdio.h>
#include<sys/time.h>
#include<unistd.h>
int main(){
struct timeval start,end; //定义timeval变量
struct timezone tz; //定义timezone变量
double t1,t2;
gettimeofday(&start,&tz);
printf("%d,%d",start.tv_sec,start.tv_usec); //输出开始时间
sleep(1); //睡眠1秒
gettimeofday(&end,&tz);
printf("%d,%d",end.tv_sec,end.tv_usec); //输出结束时间
t1=start.tv_sec+start.tv_usec; //计算开始时间
t2=end.tv_sec+end.tv_usec; //计算结束时间
return t2-t1; //返回时间差
}
完!!