<?php
$output=shell_exec('gcc prog.c');
echo "$output";
?>
私はphpを使用してacプログラムを実行しようとしていますが、shell_execを使用してgccを呼び出してプログラムを実行しましたが、出力はありませんが、エラーは表示されません。誰かが間違いを訂正してくださいよろしくお願いします。
<?php
$output=shell_exec('gcc prog.c');
echo "$output";
?>
私はphpを使用してacプログラムを実行しようとしていますが、shell_execを使用してgccを呼び出してプログラムを実行しましたが、出力はありませんが、エラーは表示されません。誰かが間違いを訂正してくださいよろしくお願いします。
gcc は、c ファイルのコンパイルに使用されます。.c ファイルを「実行」しません。コマンドラインから試してみてください。gcc prog.c を実行すると、「a.out」という名前のファイルがあることに気付くでしょう。a.out は、prog.c の正常なコンパイルから作成される実行可能ファイルです。
を呼び出すgcc
と、ファイルのコンパイルが開始されprog.c
ます。それは実行していません。
実行時にファイルをコンパイルする必要がある場合はprog.c
、次のような簡単なシェル スクリプトを作成します。
#!/bin/bash
rm prog_compiled_from_php # Remove previously compiled program
GCC=`which gcc` # Find the path to gcc and store it in the "GCC" variable
$GCC prog.c -o prog_compiled_from_php # Compile prog.c into the binary called prog_compiled_from_php
./prog_compiled_from_php # Execute the compiled program
このファイルを名前を付けて保存prog_compile
これを使用して、このスクリプトを実行可能にしてください。chmod a+x prog_compile
PHP から、$output = shell_exec('prog_compile');
私は bash スクリプトの専門家ではありません。構文を自由に修正してください :)