麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Perl > 正文

總結處理Perl信號的學習方法

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

程序腳本總是遇到這樣那樣的問題,我們預測了一些問題,并為它們處理代碼做準備,而有些問題是不可預測的,今天就讓武林技術頻道小編帶大家進入下文總結處理Perl信號的學習方法。

Unix 下常見的處理信號

?

?

No??? Name???????? Default Action?????? Description
?1???? SIGHUP?????? terminate process??? terminal line hangup
?2???? SIGINT?????? terminate process??? interrupt program
?3???? SIGQUIT????? create core image??? quit program
?4???? SIGILL?????? create core image??? illegal instruction
?5???? SIGTRAP????? create core image??? trace trap
?6???? SIGABRT????? create core image??? abort program (formerly SIGIOT)
?7???? SIGEMT?????? create core image??? emulate instruction executed
?8???? SIGFPE?????? create core image??? floating-point exception
?9???? SIGKILL????? terminate process??? kill program
?10??? SIGBUS?????? create core image??? bus error
?11??? SIGSEGV????? create core image??? segmentation violation
?12??? SIGSYS?????? create core image??? non-existent system call invoked
?13??? SIGPIPE????? terminate process??? write on a pipe with no reader
?14??? SIGALRM????? terminate process??? real-time timer expired
?15??? SIGTERM????? terminate process??? software termination signal
?16??? SIGURG?????? discard signal?????? urgent condition present on socket
?17??? SIGSTOP????? stop process???????? stop (cannot be caught or ignored)
?18??? SIGTSTP????? stop process???????? stop signal generated from keyboard
?19??? SIGCONT????? discard signal?????? continue after stop
?20??? SIGCHLD????? discard signal?????? child status has changed
?21??? SIGTTIN????? stop process???????? background read attempted from control terminal
?22??? SIGTTOU????? stop process???????? background write attempted to control terminal
?23??? SIGIO??????? discard signal?????? I/O is possible on a descriptor (see fcntl(2))
?24??? SIGXCPU????? terminate process??? cpu time limit exceeded (see setrlimit(2))
?25??? SIGXFSZ????? terminate process??? file size limit exceeded (see setrlimit(2))
?26??? SIGVTALRM??? terminate process??? virtual time alarm (see setitimer(2))
?27??? SIGPROF????? terminate process??? profiling timer alarm (see setitimer(2))
?28??? SIGWINCH???? discard signal?????? Window size change
?29??? SIGINFO????? discard signal?????? status request from keyboard
?30??? SIGUSR1????? terminate process??? User defined signal 1
?31??? SIGUSR2????? terminate process??? User defined signal 2

?

perl的信號處理原理

Perl 提供了%SIG 這個特殊的默認HASH.調用需要使用到系統保留全局HASH數組%SIG,即使 用'$SIG{信號名}'截取信號,相當于,在perl程序中出現這個信號時,執行我們自己定義某段代碼(子函數)的地址值(定義信號響應函數),這代碼就是截取這個信息后要執行的結果了.

舉個SIGALRM例子,也就是超時處理:

?

?

my $timeout = 10 ;
??? eval {
??????? local $SIG{ALRM} = sub { die "alarm/n" }; # /n required
??????? alarm $timeout; #如果到了$timeout時間就會去執行上面的sub
??????? sleep 15;
??????? print " if timeout ,this will not print";
??????? alarm 0; #恢復到默認的狀態
??? };
??? if ($@) {
??????? die? unless $@ eq "alarm/n";?? #可能捕獲的不是超時,是其他錯誤,就die吧
??????? print "timeout /n" ;
??? }
??? else {
??????? print "not timeout";
??? }

?

這里要說一下perl的錯誤捕獲機制

?

?

eval {
open(FH,”domains.txt”) or die “Can't open files,$!”;
};


捕獲異常

?

?

?


if($@){#出現異常}
else{#無異常,打印文件內容
while(){

}
close FH;
}

以上就是關于總結處理Perl信號的學習方法介紹。今天的分享就到這兒了,希望想學習的朋友。通過上面的學習希望可以幫助到大家,同時感謝大家對武林技術頻道的支持!

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

圖片精選

主站蜘蛛池模板: 久久久久久久一区二区 | 男女羞羞视频在线观看免费 | 国产精品一区二区三区99 | 欧美亚洲国产成人综合在线 | 曰批全过程40分钟免费视频多人 | 亚洲性在线视频 | 91久久综合 | 51国产偷自视频区视频小蝌蚪 | 国产精品99久久久久久久vr | 天天碰夜夜操 | 91精品国产福利尤物免费 | 麻豆小视频在线观看 | 欧美性色生活片免费播放 | 国产妞干网 | 欧美色淫 | 销魂美女一区二区 | 日韩视频区 | 偿还电影免费 | 欧美亚成人 | 久久久久久免费 | 黄污网站在线观看 | 免费视频xxxx | 欧美一区二区三区久久精品视 | 国产精品久久久久久久四虎电影 | xnxx 日本19| 精品国产亚洲人成在线 | 精品一区二区三区不卡 | 色妇视频 | 日韩欧美动作影片 | av在线影片 | 免费国产在线视频 | 一本视频在线观看 | 欧美日本91精品久久久久 | 成人三级电影网址 | 成人短视频在线观看免费 | 国产亚洲精品综合一区91555 | 黄色大片在线观看 | 亚洲精品无码不卡在线播放he | 国产免费一区二区三区视频 | 亚洲成人激情av | 欧美日韩一区,二区,三区,久久精品 |