国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Perl > 正文

教你如何在perl中使用signal

2020-02-23 19:44:28
字體:
供稿:網(wǎng)友

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

要在Linux下列出所有的signal, 利用kill -l即可。 下面是我機(jī)器上的輸出(后面還有到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

?

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

?

?

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

?

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


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

?

?

?


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


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

?

?

?


kill -s INT .


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

?

?

?


kill -s USR1 pid


就可以觸發(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í)用的。如果你也有同樣的小技巧,就拿出來大家一起分享吧

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 颍上县| 玉林市| 黎城县| 平塘县| 五常市| 隆回县| 乌海市| 宁明县| 内丘县| 南京市| 右玉县| 阜新| 木兰县| 晋中市| 西城区| 镇宁| 南部县| 嵊州市| 崇文区| 临高县| 惠东县| 新建县| 沙河市| 和平县| 克拉玛依市| 青冈县| 福贡县| 陵水| 钟祥市| 昭平县| 卓尼县| 莆田市| 吴旗县| 平遥县| 双江| 万盛区| 乌鲁木齐市| 阳谷县| 镇沅| 上栗县| 成都市|