进程间通信之:信号

时间:2013-09-13来源:网络

/*在信号屏蔽字中删除set中的信号*/

if(sigprocmask(SIG_UNBLOCK,set,NULL)0)

{

perror(sigprocmask);

exit(1);

}

else

{

printf(Signalsetisinunblockstaten);

}

while(1);

exit(0);

}

该程序的运行结果如下所示,可以看见,在信号处于阻塞状态时,所发出的信号对进程不起作用,并且该信号进入待处理状态。读者输入任意键,并且信号脱离了阻塞状态之后,用户发出的信号才能正常运行。这里SIGINT已按照用户自定义的函数运行,请读者注意阻塞状态下SIGINT的处理和非阻塞状态下SIGINT的处理有何不同。

$./sigset

Signalsetwasblocked,Pressanykey!/*此时按任何键可以解除阻塞屏蔽字*/

Ifyouwanttoquit,pleasetrySIGQUIT/*阻塞状态下SIGINT的处理*/

Signalsetisinunblockstate/*从信号屏蔽字中删除set中的信号*/

Ifyouwanttoquit,pleasetrySIGQUIT/*非阻塞状态下SIGINT的处理*/

Ifyouwanttoquit,pleasetrySIGQUIT

Quit/*非阻塞状态下SIGQUIT处理*/

1 2 3 4 5 6 7

关键词: 进程间通信 信号 操作系统 Linux

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版