我想知道是否有一個模塊或編譯指示定義了system
調用返回的信號編號的名稱?例如:信號名稱2
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 == 2
,我認爲對於代碼維護,這將是更好地使用像$signal == SIG_ABRT
..
謝謝..我認爲這是SIGINT呢? –
正確,SIGINT是2。在Linux中,你可以用'kill -l'列出它。 – tivn