Нужна помощь в реализации следующего. У меня есть программный файл C следующим образом:
#include <stdio.h> main() { int x; int args; printf("Enter an integer: "); if (( args = scanf("%d", &x)) == 0) { printf("Error: not an integer\n"); } else { printf("Read in %d\n", x); } if (( args = scanf("%d", &x)) == 0) { printf("Error: not an integer\n"); } else { printf("Read in %d\n", x); } }
Я создал a.out, и теперь хочу называть это a.out с помощью exec («a.out», $ output). Но моя проблема в том, что я получаю, как передать значение целого числа, когда оно запрашивает. Я пытался использовать proc_open (), но я не мог понять его использования. Я буду благодарен за вашу помощь, если вы можете дать мне часть кода PHP, которая может справиться с этим, чтобы передать эти два значения и, наконец, распечатать полученный результат.
С наилучшими пожеланиями
моя догадка была бы
$descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w") ); $process = proc_open('/full/path/to/a.out', $descriptorspec, $pipes); if (is_resource($process)) { list ($out, $in) = $pipes; fwrite($out, "5\n"); fwrite($out, "7\n"); echo stream_get_contents($in); }