gettimeofday函数奇特的时光倒转现象

用gettimeofday取得系统时间,按顺序得到如下结果

05-31 14:21:45.337: DEBUG/NCR(1395): start DSK_calcRotateAng time:(1306822905,343079)
05-31 14:21:45.727: DEBUG/NCR(1395): start DSK_rotateGrayImage time:(7,1306822905)
05-31 14:21:46.007: DEBUG/NCR(1395): start re-BIJ_Main time:(1306822906,11036)
05-31 14:21:46.097: DEBUG/NCR(1395): end re-BIJ_Main time:(1306822906,109024)

time:(XX,XX)前面是妙,后面是微妙

但奇怪的是,第二行的结果很反常,貌似把秒和微妙搞颠倒了,但如颠倒过来却是(1306822905,7),跟第一个比较还是时光倒转。

开始的时候以为第二行的输出语句是否写反了,但仔细检查没错。


作者: cxz7531   发布时间: 2011-05-31

你是如何调用gettimeofday 的?
又是如何输出的?

作者: justkk   发布时间: 2011-05-31

引用 1 楼 justkk 的回复:
你是如何调用gettimeofday 的?
又是如何输出的?


struct timeval tv;
gettimeofday2(&tv, NULL);
LOGD("start DSK_calcRotateAng BI_LINEDIR_X (%d~%d) time:(%ld,%ld)\n",-nMaxSkewAngle,nMaxSkewAngle,tv.tv_sec,tv.tv_usec);
...................
gettimeofday2(&tv, NULL);
LOGD("start DSK_rotateGrayImage time:(%ld,%ld)\n",rotAng,tv.tv_sec,tv.tv_usec);
...................
gettimeofday2(&tv, NULL);
LOGD("start re-BIJ_Main time:(%ld,%ld)\n",tv.tv_sec,tv.tv_usec);
...................
gettimeofday2(&tv, NULL);
LOGD("end re-BIJ_Main time:(%ld,%ld)\n",tv.tv_sec,tv.tv_usec);

作者: cxz7531   发布时间: 2011-05-31

gettimeofday2 ??

输出时强制转换一下试试(long)(tv.tv_sec), (long)(tv.tv_usec)

作者: justkk   发布时间: 2011-05-31