1

この質問を初心者だと思ったら、(もう一度)申し訳ありません。しかし、私はproc_openで本当に問題を抱えています。

C ファイルがあり、それを使用して実行し、テキストファイルproc_open()から入力を読み取りたいと考えています。入力をフェッチして実行可能ファイルにフィードすることができました。問題は、array of fetched strings.

PHP コードの断片:

        $descriptorspec = array(
            0 => array("pipe", "r"), 
            1 => array("pipe", "w"),  
            2 => array("file", "error.log", "a") 
        );

        $process = proc_open('C:/xampp/htdocs/ci_user/add2', $descriptorspec, $pipes);
        sleep(1);

        if (is_resource($process)) {

        //Read input.txt by line and store it in an array
        $input = file('C:/xampp/htdocs/ci_user/input.txt');

        //Feed the input (hardcoded)
        fwrite($pipes[0], "$input[0] $input[1]");

        fclose($pipes[0]);

        while ($s = fgets($pipes[1])) {
            print $s."</br>";
            flush();
        }
         fclose($pipes[1]); 


        }

add2.c

    #include <stdio.h>

    int main(void) {
      int first, second;

      printf("Enter two integers > ");
      scanf("%d", &first);
        scanf("%d", &second);
      printf("The two numbers are: %d  %d\n", first, second);
      printf("Output: %d\n", first+second);
    }

pipes[1] のストリーム (printf の)

Enter two integers > The two numbers are: 8 2 
Output: 10 

質問: " $input " 要素が入力としてどのように配置されるかについて"動的な方法" はありますか?

            fwrite($pipes[0], "$input[0] $input[1]");

scanfまたは、ファイルから入力を取得し、 によって実行された C 実行可能ファイルにある場合はいつでもそれをフィードする、より便利な方法はありますかproc_open()?

(ちなみに、特に私のような初心者にとっては、問題を抱えてproc_open()いる人のために、私のコードが何らかの形で役立つことを願っています。これは、いくつかの試行後に実行するのは初めてなので、私のコードは単純です。)

そして、プロのために、meeeeeを助けてください。:( ありがとうございました!

4

2 に答える 2