0

私は C で 2 つのプログラムを作成しました。1 つ目は数値を取得してその double 値を出力し、2 つ目は quadruple を出力します。
PHPで実行したい。私は proc_open を使用して実行しましたが、毎回プログラムを 1 つだけ実行すると問題なく動作します。
最初のプログラムに数値を与え、その出力を入力として 2 番目のプログラムに渡す必要があります。2 つの proc_open を使用して 2 つのプロセスを作成しても、すべてが機能しない場合。私がやりたいことは次のようなものです:

$process1 = proc_open($command_exe1, $descriptorspec1, $pipes1, $cwd);
$process2 = proc_open($command_exe2, $descriptorspec2, $pipes2, $cwd);
fwrite($pipes1[0], $posted);
fwrite($pipes2[0], $pipes1[1]);
fclose($pipes1[0]);
fclose($pipes2[0]);
while(!feof($pipes1[1])) {
                $StdOut1 = stream_get_contents($pipes1[1]);
                }
        echo $StdOut1;
while(!feof($pipes2[1])) {
                $StdOut2 = stream_get_contents($pipes2[1]);
                }
        echo $StdOut2;
fclose($pipes1[1]);
fclose($pipes2[1]);

proc_close($process1);
proc_close($process2);

それが間違った方法であることは知っていますが、他に何も考えられないので...どんな助けも大歓迎です。注:私はWindowsで作業しています。

4

1 に答える 1

0

プロセスが次々に個別に実行できる場合

「インステップ」を入れてみてください。

/** step 1*/
$process1 = proc_open($command_exe1, $descriptorspec1, $pipes1, $cwd)
...
while(!feof($pipes1[1])) {
                $StdOut1 = stream_get_contents($pipes1[1]);
                }
        echo $StdOut1;


/** step 2*/

$process2 = proc_open($command_exe2 $descriptorspec2, $pipes2, $cwd)
while(!feof($pipes2[1])) {

...

于 2013-07-17T20:49:11.187 に答える