Disallow Ctrl-C Perl

问题描述:

有没有办法禁止CtrlC命令停止在Perl中运行的脚本。Disallow Ctrl-C Perl

我知道的$ SIG {“INT”},但我想知道的一种方式,如果按下Ctrl键ç脚本不会停止不管。

目前我有:

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

但是,一旦在for循环结束后,如果按下Ctrl键Ç,该脚本将停止。

+2

请注意,您不应编辑其他人的答案以插入评论。你有足够的代表能够留下评论,但如果你阅读[常见问题](http://*.com/faq),特别是[声望]部分(http://*.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

捕获SIGINT并简单地忽略它。这不行吗?那有什么问题?我不太明白你的意思,说你知道什么$SIG{'INT'}是。

Ignore完全中断:

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

可替代地,映射中断不同的字符 - DEL也许;那么Control-C不再产生中断(或任何其他信号)并且是'正常'控制字符。

+0

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