3

我创建了一个随机整数生成器程序。它接受两个参数,一个最大数和一个最小数,并在该范围内输出一个随机整数,包括两端。

我正在创建需要随机整数的模拟程序,并且我希望能够调用随机程序并将模拟程序所需的最大值和最小值传递给它,然后将随机数返回给模拟。

我只是不知道也找不到我需要在模拟中编写以调出随机发生器并将最大值和最小值传递给它的代码。

谢谢!

4

2 回答 2

2

对于您的具体问题,您应该考虑使用popen(). 请务必pclose()在您阅读完结果后致电。

FILE *input = popen("program -and args", "r");
if (input) {
  // read the input
  pclose(input);
} else {
  perror("popen");
  // handle error
}

如果程序从标准输入读取其参数,然后将结果输出到其标准输出,您将需要创建一个双向版本的popen. 假设您有一个 POSIX 兼容的操作系统,socketpair可以用来创建您的双向通道(或者,您可以对 进行两次调用pipe)。然后,您将使用变体fork之一实现该功能。exec这将在此处讨论。

但是,正如其他人所建议的那样,您实际上应该将随机数生成器的功能作为函数合并到您的程序中。

于 2012-06-07T19:06:49.977 回答
1

最好的方法是从您的随机生成器创建一个库并链接到它。否则,您可以查找execv()函数

于 2012-06-07T19:02:59.470 回答