在proc_open之后获取真正的退出代码是一个与PHP相关的问题。在PHP中,proc_open()函数用于执行外部程序,并允许你与该程序进行交互。当你使用proc_open()时,你需要确保正确地获取程序的退出代码,以便了解程序是否成功执行。
要获取proc_open()之后的真正退出代码,你可以使用以下代码片段:
$descriptorspec = array(
0 => array("pipe", "r"), // 标准输入,子进程从此管道中读取数据
1 => array("pipe", "w"), // 标准输出,子进程向此管道中写入数据
2 => array("pipe", "w") // 标准错误,用于写入错误输出
);
$process = proc_open('your_command_here', $descriptorspec, $pipes);
if (is_resource($process)) {
fclose($pipes[0]); // 不需要向子进程传递任何输入,所以关闭标准输入
fclose($pipes[2]); // 不需要获取错误输出,所以关闭标准错误
$output = stream_get_contents($pipes[1]); // 从标准输出中读取数据
fclose($pipes[1]); // 关闭标准输出
$return_value = proc_close($process); // 获取子进程的退出代码
echo "Return value: " . $return_value . "\n";
echo "Output: " . $output;
}
在这个代码片段中,我们首先创建了一个描述符集,用于描述子进程的输入、输出和错误管道。然后,我们使用proc_open()函数执行外部命令,并将描述符集作为参数传递。接下来,我们从标准输出中读取数据,并关闭所有管道。最后,我们使用proc_close()函数获取子进程的退出代码,并将其输出。
请注意,这个代码片段仅适用于PHP。如果你需要在其他编程语言中获取proc_open()之后的真正退出代码,请参考相应语言的文档。
领取专属 10元无门槛券
手把手带您无忧上云