進(jìn)程間通信之:信號(hào)
/*在信號(hào)屏蔽字中刪除set中的信號(hào)*/
if(sigprocmask(SIG_UNBLOCK,set,NULL)0)
{
perror(sigprocmask);
exit(1);
}
else
{
printf(Signalsetisinunblockstaten);
}
while(1);
exit(0);
}
該程序的運(yùn)行結(jié)果如下所示,可以看見(jiàn),在信號(hào)處于阻塞狀態(tài)時(shí),所發(fā)出的信號(hào)對(duì)進(jìn)程不起作用,并且該信號(hào)進(jìn)入待處理狀態(tài)。讀者輸入任意鍵,并且信號(hào)脫離了阻塞狀態(tài)之后,用戶發(fā)出的信號(hào)才能正常運(yùn)行。這里SIGINT已按照用戶自定義的函數(shù)運(yùn)行,請(qǐng)讀者注意阻塞狀態(tài)下SIGINT的處理和非阻塞狀態(tài)下SIGINT的處理有何不同。
$./sigset
Signalsetwasblocked,Pressanykey!/*此時(shí)按任何鍵可以解除阻塞屏蔽字*/
Ifyouwanttoquit,pleasetrySIGQUIT/*阻塞狀態(tài)下SIGINT的處理*/
Signalsetisinunblockstate/*從信號(hào)屏蔽字中刪除set中的信號(hào)*/
Ifyouwanttoquit,pleasetrySIGQUIT/*非阻塞狀態(tài)下SIGINT的處理*/
Ifyouwanttoquit,pleasetrySIGQUIT
Quit/*非阻塞狀態(tài)下SIGQUIT處理*/
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)模擬信號(hào)相關(guān)文章:什么是模擬信號(hào)
linux相關(guān)文章:linux教程
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
評(píng)論