Ubuntu系统使用的是UTC时钟(其实安 装是可以选择的),如果你在安装时选择了UTC的,那么Ubuntu会把BIOS时间当作UTC标准时间然后根据你选的时区来调整系统时间。
但 是Windows把BIOS时间当作系统时间,那怎么办,这样的话Ubuntu与Windows双系统的时间就不同步了。
解决很简单,把UTC 给关了,在终端下(root用户下):sudo gedit /etc/default/rcS
找到“UTC=yes”,把UTC设置成 no (即"UTC=no")
保存即可。
sleep()函数大概只能精确到50ms左右,你用sleep(10)是肯定不行的,如果你要精确的定时的话可以使用QueryPerformanceFrequency()函数,用法为:LARGE_INTEGER litmp
LONGLONG QPart1,QPart2
double dfMinus, dfFreq, dfTim
QueryPerformanceFrequency(&litmp)
dfFreq = (double)litmp.QuadPart// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp)
QPart1 = litmp.QuadPart// 获得初始值
do
{
QueryPerformanceCounter(&litmp)
QPart2 = litmp.QuadPart//获得中止值
dfMinus = (double)(QPart2-QPart1)
dfTim = dfMinus / dfFreq// 获得对应的时间值,单位为秒
}while(dfTim<0.001)
其定时误差不超过1微秒,精度与CPU等机器配置有关。
×××××××××××××××××××××××××
sleep()函数的中等待时间是以毫秒计算的,所以等待1秒就是sleep(1000),如果要让等待时间小于一秒,那么就让传入的参数小于1000就行了.
比如,等待0.1秒:
sleep(100)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)