佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > perl中使用signal(信號(hào))實(shí)例

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

熱門標(biāo)簽:呼叫中心市場(chǎng)需求 客戶服務(wù) 語(yǔ)音系統(tǒng) Win7旗艦版 電話運(yùn)營(yíng)中心 企業(yè)做大做強(qiáng) 百度AI接口 硅谷的囚徒呼叫中心

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

復(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)處理程序中打開和關(guān)閉調(diào)試信息,或者切換工作模式等等。當(dāng)然因?yàn)閟ignal是操作系統(tǒng)的功能,所以這里的變成語(yǔ)言不僅僅對(duì)perl適用,對(duì)其他的語(yǔ)言也適用。只是語(yǔ)法不同而已。

標(biāo)簽:海南 安康 長(zhǎng)沙 山西 濟(jì)南 喀什 山西 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《perl中使用signal(信號(hào))實(shí)例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    措勤县| 定陶县| 苗栗县| 义马市| 平潭县| 同江市| 华容县| 扎鲁特旗| 马龙县| 涿州市| 寿光市| 留坝县| 弋阳县| 旬邑县| 崇明县| 荣成市| 信宜市| 庆云县| 南岸区| 抚顺县| 阳泉市| 莆田市| 梨树县| 肃宁县| 白朗县| 临夏县| 江达县| 绿春县| 灌阳县| 梅河口市| 平山县| 富宁县| 双柏县| 黎城县| 南部县| 张家川| 剑川县| 庄浪县| 永安市| 临清市| 湛江市|