linux c如何实现时间间隔事件

linux c如何实现时间间隔事件,第1张

1)阻塞式时间间隔,

...

sleep( interval ) //其中变量interval是秒的数量。

//do another thing

2)非阻塞式,

time_ttStart = time(NULL)

...

...

...

if( time(NULL)-tStart >interval )

{

//do another thing

tStart = time(NULL)

}

...

硬件中断是随机产生的,系统对硬件中断的扫描依赖于时钟中断间隔,时钟中断间隔由内核根据Hz值设定,目前的Linux在大多数平台上定义的Hz值是100,亦即时钟中断周期是10ms,也就是说大多数系统都是每10ms扫描一次中断,在1.25ms内可能发生多次硬件中断,但多数系统每10ms只能处理一次。

天火兄真的是高手,我知道Ubuntu和Windows的时间差异很大,这个是因为对bios时间解读不同造成的,

Ubuntu系统使用的是UTC时钟(其实安 装是可以选择的),如果你在安装时选择了UTC的,那么Ubuntu会把BIOS时间当作UTC标准时间然后根据你选的时区来调整系统时间。

但 是Windows把BIOS时间当作系统时间,那怎么办,这样的话Ubuntu与Windows双系统的时间就不同步了。

解决很简单,把UTC 给关了,在终端下(root用户下):sudo gedit /etc/default/rcS

找到“UTC=yes”,把UTC设置成 no (即"UTC=no")

保存即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7539375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存