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

Perl信號(hào)處理學(xué)習(xí)簡(jiǎn)單小結(jié)

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

Unix 下常見(jiàn)的處理信號(hào)

復(fù)制代碼 代碼如下:

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的信號(hào)處理原理

Perl 提供了%SIG 這個(gè)特殊的默認(rèn)HASH.調(diào)用需要使用到系統(tǒng)保留全局HASH數(shù)組%SIG,即使 用'$SIG{信號(hào)名}'截取信號(hào),相當(dāng)于,在perl程序中出現(xiàn)這個(gè)信號(hào)時(shí),執(zhí)行我們自己定義某段代碼(子函數(shù))的地址值(定義信號(hào)響應(yīng)函數(shù)),這代碼就是截取這個(gè)信息后要執(zhí)行的結(jié)果了.

舉個(gè)SIGALRM例子,也就是超時(shí)處理:

復(fù)制代碼 代碼如下:

my $timeout = 10 ;
    eval {
        local $SIG{ALRM} = sub { die "alarm\n" }; # \n required
        alarm $timeout; #如果到了$timeout時(shí)間就會(huì)去執(zhí)行上面的sub
        sleep 15;
        print " if timeout ,this will not print";
        alarm 0; #恢復(fù)到默認(rèn)的狀態(tài)
    };
    if ($@) {
        die  unless $@ eq "alarm\n";   #可能捕獲的不是超時(shí),是其他錯(cuò)誤,就die吧
        print "timeout \n" ;
    }
    else {
        print "not timeout";
    }

這里要說(shuō)一下perl的錯(cuò)誤捕獲機(jī)制

復(fù)制代碼 代碼如下:

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

捕獲異常
復(fù)制代碼 代碼如下:

if($@){#出現(xiàn)異常}
else{#無(wú)異常,打印文件內(nèi)容
while(){

}
close FH;
}

如果eval塊中的程序有語(yǔ)法錯(cuò)誤、運(yùn)行時(shí)錯(cuò)誤或者遇到die語(yǔ)句,eval將返回undef。錯(cuò)誤碼被保存在$@中。

相關(guān)文章

  • 一行代碼解決 perl輸入 排序 輸出問(wèn)題

    一行代碼解決 perl輸入 排序 輸出問(wèn)題

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

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

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

    Perl中的控制結(jié)構(gòu)學(xué)習(xí)筆記

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

    Perl哈希表用法解析

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

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

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

    perl高級(jí)排序,<=>操作符,飛船操作符

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

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

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

    用python下載百度文庫(kù)的代碼

    一個(gè)用python下載百度文庫(kù)的代碼,需要的同志請(qǐng)修改,下面有提示
    2012-08-08
  • perl Socket編程實(shí)例代碼

    perl Socket編程實(shí)例代碼

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

    Perl5 OOP學(xué)習(xí)筆記

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

最新評(píng)論

栾城县| 台南县| 大田县| 长沙市| 永吉县| 道孚县| 白沙| 建阳市| 淅川县| 江孜县| 恭城| 彩票| 石河子市| 高唐县| 涟源市| 仙桃市| 日照市| 龙南县| 凤城市| 佛学| 南投县| 禄劝| 山东| 湘潭市| 海宁市| 天峻县| 深圳市| 莒南县| 盐亭县| 邵武市| 三河市| 贵阳市| 潜山县| 天全县| 东城区| 扬州市| 南江县| 临江市| 新蔡县| 万源市| 历史|