定时器可以自己创建或者直接使用POSIX Timer,我们这边水印每隔1秒刷新时间的时候使用的是POSIX Timer。
POSIX timer相关的操作,主要包括创建一个timer(timer_create)、设定timer(timer_settime)、获取timer的状态、获取timer overrun的信息、删除timer,本文将使用Posix Timer的回调函数传递指针以便于在回调处理传递的数据。虽然POSIX timer可以基于各种不同的clock创建,本文主要描述real time clock相关的timer。
1、struct itimerspec介绍
struct itimerspec {
struct timespec it_interval; //首次超时后,每隔it_interval超时一次(调用回调函数)
struct timespec it_value; //首次超时时间
}
通常,it_interval 指定连续计时器到期之间的时间段。 零值意味着警报只会触发一次。 如果 it_value 非零,则表示距离下一次定时器到期的剩余时间。 值为零意味着定时器被禁用。
2、Sigevent相关介绍请参考:sigevent(7) — Linux manual pages (courier-mta.org)
sigevent 结构被各种 API 用来描述进程被通知事件的方式(例如,异步请求的完成、计时器到期或消息的到达)。 SYNOPSIS 中显示的定义是近似的:sigevent 结构中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)