私はPHPを書いたオンラインジャッジを作ろうとしています。`exec()`の呼び出しに時間制限を強制する方法はありますか?
exec("gcc /var/www/qwerty.c -o /var/www/binary",$output,$returnval);
print_r($output);
exec("cat /var/www/qwe.txt | /var/www/binary",$output,$returnval);
print_r($output);
は、しかし、私は実行するために最大で1秒を持っているexec
によって生成された各プロセスをしたい:私のコードは、現在のように見えます。私はこれを行う方法がわかりません。
exec(" (ulimit -t 1 ; gcc ... | /var/www/binary) ");
プロセスがアクティブなCPU時間を使用している場合、もちろんそれだけが際限なくI/Oを待機していない場合は、動作していること: は、set_time_limit()は、おそらくそのためulimit
を使用することができます
何の世界で? – MetalFrog
あなたが望むなら、証言のタイトルへの私の改善。 –
@ManseUK:そのページを読んでください: 'set_time_limit()関数と設定ディレクティブmax_execution_timeは、スクリプト自体の実行時間にのみ影響します。スクリプトが実行されている最長時間を決定するときに、system()、ストリーム操作、データベースクエリなどを使用するシステムコールなど、スクリプトの実行以外で発生するアクティビティに費やされる時間は含まれません。これは、測定された時間が実際のWindowsでは当てはまりません。 ' –