简要咨询咨询QQ网站导航网站搜索手机站点联系我们设为首页加入收藏 

perl中使用signal(信号)实例

来源:易贤网   阅读:824 次  日期:2015-05-11 11:24:45

温馨提示:易贤网小编为您整理了“perl中使用signal(信号)实例”,方便广大网友查阅!

这篇文章主要介绍了perl中使用signal(信号)实例,本文讲解了信号的相关知识以,并给出了perl代码实例,需要的朋友可以参考下

使用signal,能让你的程序功能更丰富。要在Linux下列出所有的signal, 利用kill -l即可。 下面是我机器上的输出(后面还有到64的没列出来):

代码如下:

kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8 ) SIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS

其中每个signal在这里有介绍.

下面是一个例子,禁止ctrl+c (ctrl+c 会产生一个INT信号给当前程序) 来关闭当前程序

代码如下:

sub INT_handler {

print("Don't Interrupt!\n");

}

$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某个信号,可以写成

代码如下:

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

要恢复成缺省的情况,利用

代码如下:

$SIG{‘INT'} = ‘DEFAULT' ;

要发送一个ctrl+c 给某个程序,除了使用ctrl+c 以外,还可以键入

代码如下:

kill -s INT .

比较有实用价值的是SIGUSR1, SIGUSR2, 这两个signal是自定义的。你可以在你的程序用用任意方式来处理这两个信号。而当你想要触发这个信号的时候,只需要在linux下键入

代码如下:

kill -s USR1 pid

就可以触发这个信号处理程序,你可以在这个信号处理程序中打开和关闭调试信息,或者切换工作模式等等。当然因为signal是操作系统的功能,所以这里的变成语言不仅仅对perl适用,对其他的语言也适用。只是语法不同而已。

更多信息请查看IT技术专栏

更多信息请查看网络编程
点此处就本文及相关问题在本站进行非正式的简要咨询(便捷快速)】     【点此处查询各地各类考试咨询QQ号码及交流群
上一篇:perl读写文件代码实例
下一篇:python通过ftplib登录到ftp服务器的方法
易贤网手机网站地址:perl中使用signal(信号)实例
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!