如何在不捕获输出的情况下从exec获取返回值?

问题描述:

当调用exec()时,我想捕获该调用的返回值,但我对输出本身不感兴趣。 exec()提供了两个可选参数,通过引用传递,它们将分别由输出和返回值填充。如何在不捕获输出的情况下从exec获取返回值?

所以我能做到这一点,只是忽略$output

exec($command, $output, $return_value); 

但是,如果有大量的输出?我不想耗尽内存,因为$output填满了。

我想也许我能做到这一点,但显然这不是有效的参考,我很快就发现了通过文字:

exec($command, null, $return_value); 

所以现在我想知道,有没有解决的办法?

可以调整$command值在外壳的水平,解决了内存使用问题,将输出重定向到/dev/null,但如果我无法预测的$command起始值这不是一个很好的解决方案。

尝试system (string $command [, int &$return_var ])。它将返回状态写入第二个参数,并且只返回不需要分配的最后一行输出:

system($command, $return_value);