linux时间编程
本次用到的函数有:
time_t time(time_t *tloc) ;
struct tm *gmtime(const time_t *timep) ;
struct tm *localgmtime(const time_t *timep) ;
char *asctime(const struct tm *tm) ;
char *ctime(const time_t *timep) ;
int gettimeofday(struct timeval *tv,struct timezone *tz) ;
unsigned int sleep(unsigned int seconds) ;
void usleeo(unsigned long usec) ;
源程序:
1)time1.c
#include<time.h>
#include<stdio.h>
int main(int argc,char *argv[])
{
time_t t;
struct tm *gt;
struct tm *lt; // lt 类型为struct tm,是个结构体
t=time(NULL);
gt=gmtime(&t);
lt=localtime(&t);
printf(asctime(gt)); //gt已经代表地址,不用再“&”取地址了
printf(asctime(lt));
printf(ctime(&t));
return 0;
}
2)time_cost.c
#include<stdio.h>
#include<stdlib.h>
#include<sys/time.h>
#include<math.h>
void cost()
{
unsigned int i,j;
double y=0;
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
y++;
}
int main()
{
struct timeval t_start , t_end; //定义两个struct timeval 的结构体
float t_use;
gettimeofday(&t_start,NULL);
cost();
gettimeofday(&t_end,NULL);
t_use=(t_end.tv_sec - t_start.tv_sec)*1000000+t_end.tv_usec-t_start.tv_usec; //t_end.tv_sec是引用结构体t_end中的tv_sec成员
t_use/=1000000;
printf("%f\n",t_use);
return 0;
}