一些研究结果如下:返回值是由wait调用返回的程序退出状态。要获取实际的退出值,向右移动8位(见下文)。另请参阅"exec"。这不是您想要使用来捕获命令输出的方法,对于这个问题,您应该使用简单的反引号或qx//,如perlop中所述。返回值为-1表示启动程序失败或wait(2)系统调用出错(检查$!的原因)。而wait的文档则说:在您的系统上,像wait(2)系统调用一样运行:等待子进程终止并返回已死进程的pid,如果没有子进程,则返回-1。状态在$?和${^CHILD_ERROR_NATIVE}中返回。请注意,返回值为-1可能意味着子进程正在自动清除,如perlipc中所述。 来源:这段内容来自perldoc。这里有一个关于Perl中system命令的教程。
system()
函数文档也是这么说的——如果fork失败,它返回-1;否则返回wait()
的结果。 - hobbs