在测试程序时,往往需要了解程序执行所需的时间,在C语言中可以使用函数gettimeofday来得到时间。
来不及解释了,直接上例子。
对于普通的C程序:
使用 gettimeofday() 函数
#include<stdio.h>
#include<sys/time.h> //注意引用这个头文件
#include<unistd.h>
int delay(int time)
{
//这里用来表示你自己要运行的程序
}
int main()
{
//定义两个结构体,来记录开始和结束时间
struct timeval start;
struct timeval end;
//记录两个时间差
unsigned long diff;
//第一次获取时间,即表示开始记时
gettimeofday(&start,NULL);
//运行自己的程序
delay(10);
//第二次获取时间,即表示结束记时
gettimeofday(&end,NULL);
//计算时间差,并打印
diff = 1000000 * (end.tv_sec-start.tv_sec)+ end.tv_usec-start.tv_usec;
printf(“thedifference is %ld\n”,diff);
return 0;
}
哈哈,例子结束,是不是很简单。当然这是抄的。。。。。。。
对于内核模块的C程序
虽然同是C程序,但是写内核模块就有很大的不同哦。
使用 do_gettimeofday() 函数,同时,头文件也变了哦
同样的,直接上例子。
#include<stdio.h>
//注意引用这个头文件
#include<linux/time.h>
#include<unistd.h>
int delay(int time)
{
//这里用来表示你自己要运行的程序
}
int main()
{
//定义两个结构体,来记录开始和结束时间
struct timeval start;
struct timeval end;
//记录两个时间差
unsigned long diff;
//第一次获取时间,即表示开始记时
do_gettimeofday(&start,NULL);
//运行自己的程序
delay(10);
//第二次获取时间,即表示结束记时
do_gettimeofday(&end,NULL);
//计算时间差,并打印
diff = 1000000 * (end.tv_sec-start.tv_sec)+ end.tv_usec-start.tv_usec;
printf(“thedifference is %ld\n”,diff);
return 0;
}