关于时间的初级问题

项目开始用到时间编程了,有的要用绝对时间,有的要用定时间隔。QNX关于时间的函数很多,简单的如sleep, usleep,还有time()相关函数,还有关于定时器事件触发的。请问大家在编成的时候都常用什么时间函数呢?以及简要的用途区别?

不一样啊。

sleep(), usleep(), delay() 是用来让运行线程睡一小会儿觉的(睡觉期间别的线程占用CPU)
time(), clock() 等是用来得到现在时刻的
timer_*() 是用来创建,设定,修改,消灭定时器的。

这么说sleep()和timer_*()的功能不是重了么,要想定时用usleep+sleep就可以实现了!

睡觉和设闹钟不是一回事啊。 :wink:

sleep()就是去睡觉了,不等时间到是不会醒的。timer_*()是设闹钟,但在闹钟到之前,你可以做任何事,不必睡觉啊。

你的比喻很形象啊!
闹钟响了,我可以理,也可以不理,这个闹钟可以看作事件,理之后的处理就可以看成对事件的处理程序,这是不是和前段时间问的中断有点关系,是不是就是你说的attachinterruptevent(),还有channel和pulse什么的

是,闹钟设完了,你就可以去做你想做的事了。等时间到了,系统就会用一个事件通知你。这个事件是你在设闹钟时(timer_create()) 就指定好了的。可以是pulse,也可以是signal或是别的。