我创建了一个随机整数生成器程序。它接受两个参数,一个最大数字和一个最小数字,并在该范围内吐出一个随机整数,包括两端。
我正在创建模拟程序,其中我需要随机整数,我希望能够调用随机函数程序并将模拟程序所需的最大值和分钟数传递给它,然后将随机数返回到模拟中。
我只是不知道而且找不到我需要在模拟中编写的代码来调出随机函数并将其传递给max和min值。
谢谢!
答案 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。
但是,正如其他人所建议的那样,您应该将随机数生成器的功能作为一个函数合并到您的程序中。