传递PHP exec()方法的交互式参数

时间:2012-05-19 15:53:03

标签: php exec proc-open

需要帮助才能实施以下内容。我有一个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,现在我想用exec(“a.out”,$ output)调用这个a.out。但我的问题是,当我要求时,我正在学习如何传递整数的值。我尝试使用proc_open()但我无法理解它的用法。如果你能给我一段PHP代码来传递这两个值并最终打印收到的结果,我将非常感谢你的帮助。

最好的问候

1 个答案:

答案 0 :(得分:3)

我的猜测是

$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);
}