如果您發現此問題noob,我很抱歉(再次)。但我真的有問題proc_open。使用proc_open()在PHP中運行C可執行文件
我有一個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
問:是否有一個「動態的方式」的「$輸入」元素將如何進行佈局作爲輸入的
fwrite($pipes[0], "$input[0] $input[1]");
或者是有一個更方便的方式來獲得一個輸入文件,並在proc_open()
運行的C可執行文件中有scanf
時提供。
(順便說一句,對於那些具有proc_open()
麻煩,尤其是對於像我這樣的初學者,我希望我的代碼幫你弄好了。這是我第一次以使其嘗試幾次後運行的,所以我的代碼很簡單。)
對於親們,請幫助我。 :(謝謝
感謝@ joran-DEN-houting爲編輯:) – user2800050
沒問題高興你有你的答案:) –