调用另一个程序并传递参数

时间:2012-06-07 18:57:29

标签: c++ ubuntu arguments

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

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

我只是不知道而且找不到我需要在模拟中编写的代码来调出随机函数并将其传递给max和min值。

谢谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

对于您的具体问题,您应该考虑使用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变体之一来实现该功能。这是讨论here

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