当前位置: 技术问答>linux和unix
linux 获取毫秒精度以上的时间函数
来源: 互联网 发布时间:2016-06-20
本文导语: 我最近遇到一个很难解决的问题,请高手指点帮忙。在我的程序用gettimeofday获取dns解析时间和connect的时间偶尔为0,有时还发现下载一个页面的速度超高,时间只有几毫秒或零点几毫秒。结果检查程序,就发现在...
我最近遇到一个很难解决的问题,请高手指点帮忙。在我的程序用gettimeofday获取dns解析时间和connect的时间偶尔为0,有时还发现下载一个页面的速度超高,时间只有几毫秒或零点几毫秒。结果检查程序,就发现在获取时间上有问题,别的地方不会存在问题,由此猜想这个gettimeofday函数是不多线程下不安全?或者多线程下不稳定?还有出现时间极短的情况可能是我们服务器每隔几小时就会校准一下系统时间,调服务器的系统时间。只要获取开始时间和结束时间在调服务器时间之间,肯定是会出错的。最后又用timer API(timer_gettime timer_create timer_settime ) 测试,封装成类,单线程测试,就执行一个很短的空循环,测试发现时间为负值,gettimeofday为正值。主要原因是,还剩下的到期时间竟然比定时开始的时间长,作差自然为负值,很纳闷,这个函数竟然还是不靠谱。有谁有更好的办法?
要求获取的时间不受系统时间的变化而影响,精度达到毫秒以上。qq 875346196 在线等待,着急。本人没有积分,请不要介意。
要求获取的时间不受系统时间的变化而影响,精度达到毫秒以上。qq 875346196 在线等待,着急。本人没有积分,请不要介意。
|
#include
int gettimeofday(struct timeval *restrict tp,void *restrict tzp)
int gettimeofday(struct timeval *restrict tp,void *restrict tzp)