我们在perl编程中使用signal可以让我们的程序功能变得更丰富,但是仍有许多小伙伴们不知道如何使用signal,下面我们就让小编教你如何在perl中使用signal。
要在Linux下列出所有的signal, 利用kill -l即可。 下面是我机器上的输出(后面还有到64的没列出来):
其中每个signal在这里有介绍.
下面是一个例子,禁止ctrl+c (ctrl+c 会产生一个INT信号给当前程序) 来关闭当前程序
$SIG{'INT'} = 'INT_handler'; #another way is $SIG{'INT'} = /&INT_handler ;
for ($x = 0; $x < 10; $x++) {
print("$x/n");
sleep 1;
}
其中的%SIG 是perl内置的hash,专门用来处理信号的。如果要ignore某个信号,可以写成
要恢复成缺省的情况,利用
要发送一个ctrl+c 给某个程序,除了使用ctrl+c 以外,还可以键入
比较有实用价值的是SIGUSR1, SIGUSR2, 这两个signal是自定义的。你可以在你的程序用用任意方式来处理这两个信号。而当你想要触发这个信号的时候,只需要在linux下键入
就可以触发这个信号处理程序,你可以在这个信号处理程序中打开和关闭调试信息,或者切换工作模式等等。当然因为signal是操作系统的功能,所以这里的变成语言不仅仅对perl适用,对其他的语言也适用。只是语法不同而已。
上文中小编教你如何在perl中使用signal,其实signal功能有很多,咱只学最最实用的。如果你也有同样的小技巧,就拿出来大家一起分享吧
新闻热点
疑难解答
图片精选