最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Perl信號處理學習簡單小結(jié)

 更新時間:2014年09月17日 10:49:17   作者:鄉(xiāng)村運維  
這篇文章主要介紹了Perl信號處理學習簡單小結(jié),本文著重列出了Unix下常見的處理信號表,需要的朋友可以參考下

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.調(diào)用需要使用到系統(tǒng)保留全局HASH數(shù)組%SIG,即使 用'$SIG{信號名}'截取信號,相當于,在perl程序中出現(xiàn)這個信號時,執(zhí)行我們自己定義某段代碼(子函數(shù))的地址值(定義信號響應函數(shù)),這代碼就是截取這個信息后要執(zhí)行的結(jié)果了.

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

復制代碼 代碼如下:

my $timeout = 10 ;
    eval {
        local $SIG{ALRM} = sub { die "alarm\n" }; # \n required
        alarm $timeout; #如果到了$timeout時間就會去執(zhí)行上面的sub
        sleep 15;
        print " if timeout ,this will not print";
        alarm 0; #恢復到默認的狀態(tài)
    };
    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($@){#出現(xiàn)異常}
else{#無異常,打印文件內(nèi)容
while(){

}
close FH;
}

如果eval塊中的程序有語法錯誤、運行時錯誤或者遇到die語句,eval將返回undef。錯誤碼被保存在$@中。

相關文章

  • 一行代碼解決 perl輸入 排序 輸出問題

    一行代碼解決 perl輸入 排序 輸出問題

    一行代碼解決 perl輸入 排序 輸出問題,需要的朋友可以參考下
    2013-02-02
  • perl的格式化(Format)報表輸出實現(xiàn)代碼

    perl的格式化(Format)報表輸出實現(xiàn)代碼

    perl有最好的文本數(shù)據(jù)處理能力.這是大家都知道的.在perl本身有一個別的軟件沒有的小功能,就是Perl格式.它相當于簡單的命令行報表和圖表輸出
    2013-01-01
  • Perl中的控制結(jié)構學習筆記

    Perl中的控制結(jié)構學習筆記

    這篇文章主要介紹了Perl中的控制結(jié)構學習筆記,本文講解了條件語句if、條件語句unless、循環(huán)語句while、循環(huán)語句until、for循環(huán)、foreach語句、循環(huán)控制等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Perl哈希表用法解析

    Perl哈希表用法解析

    Perl語言有很多值得學習的地方,那么你對Perl哈希表的概念是否熟悉呢,這里和大家分享一下,希望本文的介紹能讓你有所收獲
    2013-02-02
  • perl 模塊打包加入外部依賴程序

    perl 模塊打包加入外部依賴程序

    Perl 社區(qū)并不是所有的東西都發(fā)布在 CPAN 上。甚至專門有一個 Module::ThirdParty 模塊記錄這些非 CPAN 的 perl 項目列表。其中最有名的應該就屬寫博客的 Movable Type 和做監(jiān)控的 SmokePing 了
    2013-02-02
  • perl高級排序,<=>操作符,飛船操作符

    perl高級排序,<=>操作符,飛船操作符

    perl高級排序的關鍵在于要指定排序的方式,使用的操作符是spaceship operator(<=>)
    2013-02-02
  • Perl從文件中讀取字符串的兩種實現(xiàn)方法

    Perl從文件中讀取字符串的兩種實現(xiàn)方法

    有時候我們需要從文件中讀取字符串,這里簡單介紹下, 需要的朋友可以參考下
    2013-02-02
  • 用python下載百度文庫的代碼

    用python下載百度文庫的代碼

    一個用python下載百度文庫的代碼,需要的同志請修改,下面有提示
    2012-08-08
  • perl Socket編程實例代碼

    perl Socket編程實例代碼

    Perl的networking 功能非常強大,基本上用c/c++能做的事perl都能做,而且做得更輕松方便,甚至可以只用10來行代碼就完成了c/c++要幾十上百甚至幾百行才能完成得好的工作
    2013-02-02
  • Perl5 OOP學習筆記

    Perl5 OOP學習筆記

    在Perl排名持續(xù)下降的情況下學Perl,似乎是有點不明智。但是,工作需要,不得不學啊。再說,Perl現(xiàn)在在測試領域還是用得非常多的。Phython雖然也在測試領域開始活躍起來,不過我始終還是不太喜歡Phython的語法。
    2009-04-04

最新評論

富阳市| 平山县| 鄂温| 吴忠市| 临颍县| 桃园市| 高唐县| 遂川县| 莎车县| 辽中县| 上栗县| 从江县| 昌江| 家居| 定陶县| 公安县| 丰城市| 乐平市| 新密市| 温州市| 六枝特区| 台南市| 宜兰市| 扎囊县| 峡江县| 刚察县| 九龙县| 万安县| 平塘县| 南涧| 明光市| 合阳县| 武陟县| 色达县| 广宗县| 邛崃市| 甘德县| 清原| 广灵县| 鄂托克前旗| 鸡泽县|