この質問を初心者だと思ったら、(もう一度)申し訳ありません。しかし、私は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を助けてください。:( ありがとうございました!