我們在perl編程中使用signal可以讓我們的程序功能變得更豐富,但是仍有許多小伙伴們不知道如何使用signal,下面我們就讓小編教你如何在perl中使用signal。
要在Linux下列出所有的signal, 利用kill -l即可。 下面是我機器上的輸出(后面還有到64的沒列出來):
?
?
其中每個signal在這里有介紹.
下面是一個例子,禁止ctrl+c (ctrl+c 會產生一個INT信號給當前程序) 來關閉當前程序
?
?
$SIG{'INT'} = 'INT_handler'; #another way is $SIG{'INT'} = /&INT_handler ;
for ($x = 0; $x < 10; $x++) {
print("$x/n");
sleep 1;
}
?
其中的%SIG 是perl內置的hash,專門用來處理信號的。如果要ignore某個信號,可以寫成
要恢復成缺省的情況,利用
?
?
要發送一個ctrl+c 給某個程序,除了使用ctrl+c 以外,還可以鍵入
?
?
比較有實用價值的是SIGUSR1, SIGUSR2, 這兩個signal是自定義的。你可以在你的程序用用任意方式來處理這兩個信號。而當你想要觸發這個信號的時候,只需要在linux下鍵入
?
?
就可以觸發這個信號處理程序,你可以在這個信號處理程序中打開和關閉調試信息,或者切換工作模式等等。當然因為signal是操作系統的功能,所以這里的變成語言不僅僅對perl適用,對其他的語言也適用。只是語法不同而已。
上文中小編教你如何在perl中使用signal,其實signal功能有很多,咱只學最最實用的。如果你也有同樣的小技巧,就拿出來大家一起分享吧
新聞熱點
疑難解答
圖片精選