perl中使用signal(信號)實例
來源:易賢網(wǎng) 閱讀:680 次 日期:2015-05-11 11:24:45
溫馨提示:易賢網(wǎng)小編為您整理了“perl中使用signal(信號)實例”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了perl中使用signal(信號)實例,本文講解了信號的相關(guān)知識以,并給出了perl代碼實例,需要的朋友可以參考下

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

代碼如下:

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

其中每個signal在這里有介紹.

下面是一個例子,禁止ctrl+c (ctrl+c 會產(chǎn)生一個INT信號給當前程序) 來關(guān)閉當前程序

代碼如下:

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,專門用來處理信號的。如果要ignore某個信號,可以寫成

代碼如下:

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

要恢復(fù)成缺省的情況,利用

代碼如下:

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

要發(fā)送一個ctrl+c 給某個程序,除了使用ctrl+c 以外,還可以鍵入

代碼如下:

kill -s INT .

比較有實用價值的是SIGUSR1, SIGUSR2, 這兩個signal是自定義的。你可以在你的程序用用任意方式來處理這兩個信號。而當你想要觸發(fā)這個信號的時候,只需要在linux下鍵入

代碼如下:

kill -s USR1 pid

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

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:perl中使用signal(信號)實例

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)