你说的比较笼统,我也不知道你说的是哪一种。
linux下可以给任何进程发送一些信号,进程收到信号后,需要执行一些 *** 作,这个和Win32下的事件有点像。但是这个是系统级的。
你如果是要编写一个大型程序,分成各个模块,那么各模块之间不但可以用信号来传递消息,也可以用SystemV自带的消息队列或者socket来传递消息,以达到与“触发事件”类似的效果。
进程也可以给自己发信号,也可以给自己发消息(通过消息队列)。
which:间歇计时器类型,有三种选择ITIMER_REAL //数值为0,计时器的值实时递减,发送的信号是SIGALRM。
ITIMER_VIRTUAL //数值为1,进程执行时递减计时器的值,发送的信号是SIGVTALRM。
ITIMER_PROF //数值为2,进程和系统执行时都递减计时器的值,发送的信号是SIGPROF。
value,ovalue:时间参数,原型如下
struct itimerval
{
struct timeval it_interval
struct timeval it_value
}
struct timeval
{
long tv_sec
long tv_usec
}
getitimer()用计时器的当前值填写value指向的结构体。
setitimer()将value指向的结构体设为计时器的当前值,如果ovalue不是NULL,将返回计时器原有值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)