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