【发布时间】:2015-04-25 19:58:28
【问题描述】:
我想知道是否有定义system 调用返回的信号编号名称的模块或编译指示?例如:
use feature qw(say);
use strict;
use warnings;
my $cmd = 'sleep 10';
my $res = system $cmd;
my $signal = $res & 127;
if ( $res == -1 ) {
die "Failed to execute: $!\n";
}
elsif ( $signal == 2 ) {
say " Aborted by user.";
}
elsif ( $signal ) {
printf " Command '%s' Died with signal %d, %s coredump.\n",
$cmd, $signal, ( $? & 128 ) ? 'with' : 'without';
}
我认为对于代码维护,最好使用$signal == SIG_ABRT..之类的东西,而不是$signal == 2。
【问题讨论】:
标签: perl