如果您发现这个问题新手,我很抱歉(再次)。但是我在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);
}
管道[1]上的流(printf)
Enter two integers > The two numbers are: 8 2
Output: 10
问题:对于如何将“ $input ”元素作为输入布局,是否有“动态方式”?
fwrite($pipes[0], "$input[0] $input[1]");
或者是否有一种更方便的方法可以从文件中获取输入并scanf
在proc_open()
.
(顺便说一句,对于那些遇到麻烦的人proc_open()
,尤其是像我这样的初学者,我希望我的代码能以某种方式帮助你。这是我在几次尝试后第一次让它运行,所以我的代码很简单。)
对于专业人士,请帮助 meeeee。:( 谢谢你!