こんにちは、ac コンパイラを起動して実行すると出力が表示されますが、問題はエラーが表示されないことです....
shell_exec("gcc xyz.c -o ab.out ");
$output=exec("./ab.out");
echo $output;
したがって、出力は表示されますが、コンパイル中にエラーは発生しません。どんな助けでも正当に評価されます。前もって感謝します。
こんにちは、ac コンパイラを起動して実行すると出力が表示されますが、問題はエラーが表示されないことです....
shell_exec("gcc xyz.c -o ab.out ");
$output=exec("./ab.out");
echo $output;
したがって、出力は表示されますが、コンパイル中にエラーは発生しません。どんな助けでも正当に評価されます。前もって感謝します。
実行したコマンドからのエラー出力はすべて STDERR に送られ、exec、shell_exec 関数はそれを提供しません。1つの方法は、それをリダイレクトすることです
exec("gcc test.c 2>&1", $out);
最もクリーンな方法は、proc_open関数を使用することです。
$descriptorspec = array(
1 => array("pipe", "w"), // stdout
2 => array("pipe", "w") // stderr
);
$process = proc_open('gcc test.c', $descriptorspec, $pipes);
if (is_resource($process)) {
$stderr = stream_get_contents($pipes[2]);
$stdout = stream_get_contents($pipes[1]);
fclose($pipes[1]);
fclose($pipes[2]);
$return_value = proc_close($process);
}