Php Exec将g ++错误重定向到文件

时间:2014-06-09 18:37:27

标签: php linux g++

我在php脚本中有一个shell_exec,我希望从编译(如果它存在)收到错误消息作为从shell_exec返回或从文件中获取它...但我不能这样做。

这是一次尝试

$compiler=shell_exec("g++ '$path''$file_name' -o '$path''$evaluate_id' >& '$path''$error'");

3 个答案:

答案 0 :(得分:1)

您可能想要使用popen(并且您希望将g++ stderr重定向到其标准输出,或许类似

 $handle = popen("g++ -Wall -c somesource.c 2>&1", "r");

当然,请更换命令以满足您的需求。

稍后您需要使用pclose(您应该阅读fgets等句柄....)

答案 1 :(得分:0)

shell_exec函数可以在发生错误或程序不产生输出时返回NULL

使用此功能无法检测执行失败。

当需要访问程序退出代码时,应使用

exec()

请参阅http://www.php.net//manual/en/function.shell-exec.php

答案 2 :(得分:0)

g ++将错误消息打印到 stderr shell_exec捕获g ++打印到 stdout 的内容。

stderr 重定向到 stdout 或使用其他函数调用g ++。