a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Perl > 正文

教你如何在perl中使用signal

2020-02-23 19:44:28
字體:
來源:轉載
供稿:網友

我們在perl編程中使用signal可以讓我們的程序功能變得更豐富,但是仍有許多小伙伴們不知道如何使用signal,下面我們就讓小編教你如何在perl中使用signal。

要在Linux下列出所有的signal, 利用kill -l即可。 下面是我機器上的輸出(后面還有到64的沒列出來):

?

?

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

?

其中每個signal在這里有介紹.
下面是一個例子,禁止ctrl+c (ctrl+c 會產生一個INT信號給當前程序) 來關閉當前程序

?

?

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

?

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


要恢復成缺省的情況,利用

?

?

?


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


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

?

?

?


kill -s INT .


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

?

?

?


kill -s USR1 pid


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

上文中小編教你如何在perl中使用signal,其實signal功能有很多,咱只學最最實用的。如果你也有同樣的小技巧,就拿出來大家一起分享吧

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: www中文字幕 | 欧美日韩一区二区视频在线观看 | 国产精品视频一区二区三区, | 成人免费在线视频 | 国产精品久久久久久亚洲毛片 | 日本欧美三级 | 美女黄色在线观看 | 国产一区二区精品 | 亚洲精品一二三 | 人人草在线观看视频 | 日本a视频 | 久久久久亚洲一区二区三区 | 狠狠色噜噜狠狠色综合久 | 国产高清一区 | 一区二区三区回区在观看免费视频 | 91久久国产综合久久 | 国产日皮视频 | 亚洲色图3p | 国产精品一区二区三区久久 | 免费日韩| 免费aaa| 91av在线免费看 | 91极品在线 | 中文字幕一区二区三区不卡 | 一区二区在线视频 | 国产伦理精品一区二区三区观看体验 | 欧美日韩中文在线 | 国产最新视频在线 | 国产精品成人在线观看 | 久久免费精品视频 | 精品一区免费 | 欧美小电影| 99视频网站 | 日韩三级视频 | 2021最新热播中文字幕-第1页-看片视频 亚洲第一男人天堂 | 欧美三区 | 日韩av在线免费播放 | 免费日本黄色 | 国产美女自拍视频 | 成人精品网站在线观看 | 国产精品三级久久久久久电影 |