【问题标题】:how to find that which signal is received in perl?如何找到在 perl 中接收到的信号?
【发布时间】:2012-05-17 10:25:44
【问题描述】:

我编写了一个简单的程序来处理一些信号。 我的程序是,

#!/usr/bin/perl

use strict;
use warnings;

$SIG{INT} = $SIG{TERM} = $SIG{HUP} = \&signal_handler;

sub signal_handler
{

print " ".localtime()." Handled the signal\n";

};

while(1)
{
  sleep(1);
}

信号处理程序对应的%SIG哈希中指定了哪些信号 将在收到信号时调用。 我为三个信号声明了一个信号处理程序。

我想找出接收到的信号。

C 中,它将通过信号处理程序参数本身给出信号编号。

例子,

   void sig_handler(int signo);

我在 perl 中不知道。我试图找到它。但是,我没有找到任何答案。

【问题讨论】:

    标签: perl signals


    【解决方案1】:

    信号名称(INT、TERM 等)作为参数传递给信号处理程序。你可以这样写:

    sub signal_handler
    {
        my $signal = shift;
        print " ".localtime()." Handled the signal $signal\n";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多