欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

perl中使用signal(信號(hào))實(shí)例

 更新時(shí)間:2015年05月08日 11:40:54   投稿:junjie  
這篇文章主要介紹了perl中使用signal(信號(hào))實(shí)例,本文講解了信號(hào)的相關(guān)知識(shí)以,并給出了perl代碼實(shí)例,需要的朋友可以參考下

使用signal,能讓你的程序功能更豐富。要在Linux下列出所有的signal, 利用kill -l即可。 下面是我機(jī)器上的輸出(后面還有到64的沒(méi)列出來(lái)):

復(fù)制代碼 代碼如下:

xuyang@xuyang-desktop:/$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8 ) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS

其中每個(gè)signal在這里有介紹.
下面是一個(gè)例子,禁止ctrl+c (ctrl+c 會(huì)產(chǎn)生一個(gè)INT信號(hào)給當(dāng)前程序) 來(lái)關(guān)閉當(dāng)前程序

復(fù)制代碼 代碼如下:

sub INT_handler {
print("Don't Interrupt!\n");
}

$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,專(zhuān)門(mén)用來(lái)處理信號(hào)的。如果要ignore某個(gè)信號(hào),可以寫(xiě)成

復(fù)制代碼 代碼如下:

$SIG{‘INT'} = ‘IGNORE' ;

要恢復(fù)成缺省的情況,利用
復(fù)制代碼 代碼如下:

$SIG{‘INT'} = ‘DEFAULT' ;

要發(fā)送一個(gè)ctrl+c 給某個(gè)程序,除了使用ctrl+c 以外,還可以鍵入
復(fù)制代碼 代碼如下:

kill -s INT .

比較有實(shí)用價(jià)值的是SIGUSR1, SIGUSR2, 這兩個(gè)signal是自定義的。你可以在你的程序用用任意方式來(lái)處理這兩個(gè)信號(hào)。而當(dāng)你想要觸發(fā)這個(gè)信號(hào)的時(shí)候,只需要在linux下鍵入
復(fù)制代碼 代碼如下:

kill -s USR1 pid

就可以觸發(fā)這個(gè)信號(hào)處理程序,你可以在這個(gè)信號(hào)處理程序中打開(kāi)和關(guān)閉調(diào)試信息,或者切換工作模式等等。當(dāng)然因?yàn)閟ignal是操作系統(tǒng)的功能,所以這里的變成語(yǔ)言不僅僅對(duì)perl適用,對(duì)其他的語(yǔ)言也適用。只是語(yǔ)法不同而已。

相關(guān)文章

最新評(píng)論