2012-02-19 42 views
2

有沒有辦法禁止CtrlC命令停止在Perl中運行的腳本。Disallow Ctrl-C Perl

我知道的$ SIG {「INT」},但我想知道的一種方式,如果按下Ctrl鍵ç腳本不會停止不管。

目前我有:

$SIG{'INT'}; 
## for loop here 

但是,一旦在for循環結束後,如果按下Ctrl鍵Ç,該腳本將停止。

+2

請注意,您不應編輯其他人的答案以插入評論。你有足夠的代表能夠留下評論,但如果你閱讀[常見問題](http://stackoverflow.com/faq),特別是[聲望]部分(http://stackoverflow.com/faq#聲望),你會看到評論「你總是可以評論你的問題和答案,以及任何你問過的問題的答案,即使有1個代表」。 – 2012-02-19 17:10:58

+2

'$ SIG {'INT'};'作爲一行代碼本身是沒有意義的,如果你啓用了[警告](http://p3rl.org/warnings),它本可以告訴你的。 – hobbs 2012-02-19 21:01:12

+0

[perlfaq8:如何捕獲控制字符和信號](http://learn.perl.org/faq/perlfaq8.html#How-do-I-trap-control-characters-signals-)和[perlipc]( http://perldoc.perl.org/perlipc.html) – 2012-02-20 00:22:23

回答

1

捕獲SIGINT並簡單地忽略它。這不行嗎?那有什麼問題?我不太明白你的意思,說你知道什麼$SIG{'INT'}是。

9

Ignore完全中斷:

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

可替代地,映射中斷不同的字符 - DEL也許;那麼Control-C不再產生中斷(或任何其他信號)並且是'正常'控制字符。

+0

謝謝,它工作完美。 – 2012-02-19 17:05:21