我试图做非阻塞waitpid,根据perl手册页,waitpid($pid, WNOHANG);会做.但以下似乎是封锁.printf的结果将需要2秒才能显示出来.
$pid = fork;
if (!$pid) {
exec("sleep 2");
}
waitpid($pid, WNOHANG);
$retCode = $?;
printf "%04x\n", $retCode;
Run Code Online (Sandbox Code Playgroud)
小智 7
错误编号1:您没有启用警告.
错误2:你没有申报WNOHANG.所以它是一个裸字,它变成了字符串'WNOHANG'.当解释为数字时,字符串变为0而没有警告,因为它看起来不像数字.所以你waitpid用flags = 0 调用,而不是你想要的WNOHANG标志.
use warnings;
use POSIX 'WNOHANG';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |