gettimeofday到底怎么用的?给个例子行不行?(在线等)
我用下面一段代码试验了一番,很有问题
有些时间打出来每次都是一样的,只有以秒为单位的那个是正确的
还有北京时间什么的是正确的,其他的好像都有问题
会是指针用错了?我记得c语言里面是这样用的阿
还有有时候定义了一个指针没用,也会影响打印结果,不知道red hat 9怎么搞的
这些函数我在一本比较权威的书上看的,多谢了,帮帮忙,怎么就不对
反正现在我的核心问题是要能读取精确到微妙,至少是毫秒级的时间
代码如下:(有些代码因为有问题,我取消了)
#include <sys/types.h>
#include <time.h>
#include <sys/time.h>
#include <sys/timeb.h>
int
main()
{
time_t clock,*clk;
char *date;
struct tm *tm;
struct timeval *tv; /*pro该结构的变量没有变化*/主要是这里
树上说里面两个数据项分别表示1970以来的
秒数和微妙数,可是打印出来怎么都是同样的一个数值
/* struct timeb *tb;ftime用来保存时间的结构*/
这个结构里面的两个项号称放了unix的时间和毫秒数
struct timezone *tz;
clock=time(clk); /* 这是注释,获取1970年以来的秒数*/
这个函数执行正确的
gettimeofday(tv,tz);
printf("seconds from 1970:\n");
printf("%20d\n",*clk);
printf("%20ld\n",tv->tv_sec);
printf("micro-seconds from 1970:\n");
printf("%20ld\n",tv->tv_usec);
/*ftime(tb);*/
printf("unix time:");
/*printf("%20d",tb->time);*/
printf("millitime:");
tm=gmtime(clk); 往下的执行没有问题
date=asctime(tm);
printf("格林威志时间:%s",date);
date=ctime(clk);
printf("北京时间 :%s",date);
}