当前位置: 技术问答>linux和unix
【求助】一小段perl代码~谢谢
来源: 互联网 发布时间:2016-11-25
本文导语: waitpid($childpid,0); $save = $?; $ret = $save >> 8; $signal = $save & 127; if($ret == 0){ if( ($signal == 6) || ($signal == 11) ) { return 1; } else { return 0; } } else{ return 1; } 可以帮我讲讲这段代...
waitpid($childpid,0);
$save = $?;
$ret = $save >> 8;
$signal = $save & 127;
if($ret == 0){
if( ($signal == 6) || ($signal == 11) )
{
return 1;
}
else
{
return 0;
}
}
else{
return 1;
}
可以帮我讲讲这段代码么?
我想请问当$ret不为0时,处于什么状态?
谢谢啦~
$save = $?;
$ret = $save >> 8;
$signal = $save & 127;
if($ret == 0){
if( ($signal == 6) || ($signal == 11) )
{
return 1;
}
else
{
return 0;
}
}
else{
return 1;
}
可以帮我讲讲这段代码么?
我想请问当$ret不为0时,处于什么状态?
谢谢啦~
|
perl新手的理解
$ret保存的是子进程的退出状态 如果非0 表示子进程异常终止哇
waitpid($childpid,0);
//下面这句是得到子进程的退出状态 但是子进程里如果是用exit(n)退出的话 用$?捕获的值和n不一致的 但大//概有如下对应关系
//0 => 128
//1 => 256
//2 => 512
//-1 => 65280
$save = $?;
//如果$?是128 向右进行8个移位操作就是0
$ret = $save >> 8;
所以如果$ret是0 就说明子进程是0状态退出的 就是正常终止
$ret保存的是子进程的退出状态 如果非0 表示子进程异常终止哇
waitpid($childpid,0);
//下面这句是得到子进程的退出状态 但是子进程里如果是用exit(n)退出的话 用$?捕获的值和n不一致的 但大//概有如下对应关系
//0 => 128
//1 => 256
//2 => 512
//-1 => 65280
$save = $?;
//如果$?是128 向右进行8个移位操作就是0
$ret = $save >> 8;
所以如果$ret是0 就说明子进程是0状态退出的 就是正常终止