2

需要帮助来实现以下内容。我有一个 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) 来调用它。但我的问题是我得到了如何在它要求时传递整数的值。我尝试使用 proc_open() 但我无法理解它的用法。如果您能给我一段 PHP 代码,它可以处理这个以传递这两个值并最终打印收到的结果,我将不胜感激。

此致

4

1 回答 1

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);
}
于 2012-05-19T16:11:04.887 回答