perl多个sig处理程序指向一个子例程

perl多个sig处理程序指向一个子例程,第1张

概述perl多个sig处理程序指向个子例程

我是Perl的全新,并试图添加function,我的脚本捕捉键盘中断和术语信号,如果抛出,然后发出一个 *** 作系统命令来处理。 在没有信号抛出和脚本执行成功的情况下(注意END块),还需要发出相同的OS命令和sub。 据我所知,从研究和testing,你必须注册每个信号的信号处理程序。 在每种情况下,他们都需要触发相同的子。 这是可能的做一个$ SIG,或者我必须注册两个,每个信号一个? 这是我的代码。

sub issueKdestroy{ system("kdestroy -q"); exit(1); } $SIG{INT} = (&issueKdestroy); $SIG{TERM} = (&issueKdestroy); END{ issueKdestroy(); }

从testing,这不起作用:

$SIG{'INT','TERM'} = (&issueKdestroy);

在上面的代码中它不会识别INT或TERM。 build议?

SIGCHLD信号处理

为什么shell在后台进程中忽略SIGINT和SIGQUIT?

SIGStop和SIGTSTP会损坏JVM吗?

C信号处理程序中的竞态条件

“命名pipe道”通常如何实施“握手”?

在linux中检测system()函数返回值的含义

哪个线程处理信号?

从Java调用脚本,接收到sigpipe信号

在C ++中,我可以使用multithreading工具将UNIX信号与主程序同步吗?

SDL / C ++ OpenGL程序,如何阻止SDL捕获SIGINT

$SIG{'INT','TERM'}不是你的意思; 为这两个键分配值,使用散列片(并提供两个值):

@SIG{'INT','TERM'} = (&issueKdestroy,&issueKdestroy);

用$来代替,就是调用perl4风格的多维数组模拟,允许指定多个键,但将它们全部存储在一个散列中,相当于:

$SIG{ join $;,'INT','TERM' }

$; 是默认的chr(0x1c) 。

总结

以上是内存溢出为你收集整理的perl多个sig处理程序指向一个子例程全部内容,希望文章能够帮你解决perl多个sig处理程序指向一个子例程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1155378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存