一、最简单获取秒数的,windows和linux逗支持用time()函数,获取从1970年到现在过了多少秒,time_t其实是long int 类型
time_t start=time(NULL);
for(long i=0;i<10000000000;)
i+=1;
time_t end=time(NULL)
printf("经过了%d秒",end-start);
二、linux下的,使用gettimeofday()接口获取微秒级别的,tv.sec是秒,tv.usec是秒余下的微秒值。
#include <stdio.h>
#include <sys/time.h>
int main() {
struct timeval start, end;
gettimeofday( &start, NULL );
sleep(3);
gettimeofday( &end, NULL );
int timeuse = 1000000 * ( end.tv_sec - start.tv_sec ) + end.tv_usec - start.tv_usec;
printf("经过了%d微秒", timeuse);
return 0;
}
三、使用localtime函数把1970到现在经过的秒数转化为日期,
返回一个tm结构体,tm结构体定义为:
struct tm {
int tm_sec; //秒[0-59]
int tm_min; //分[0-59]
int tm_hour; //时[0-23]
int tm_mday; //日[1-31]
int tm_mon; //月份[0-11],0代表一月
int tm_year; //年份,需要加上1900
int tm_wday; //星期[0-6],0代表星期天
int tm_yday; //从每年1月1日开始的天数[0-365],0代表1月1日
};
函数原型:struct tm *localtime(const time_t *clock);需要把time_t类型的秒数传进去。
四、使用clock()函数,windows下是毫秒,linux下是微秒,这个是程序执行到函数调用经过的时钟滴答次数。