3

ランダム整数ジェネレータ プログラムを作成しました。最大数と最小数の 2 つの引数を取り、両端を含むその範囲内のランダムな整数を吐き出します。

ランダムな整数が必要なシミュレーション プログラムを作成しています。ランダマイザー プログラムを呼び出して、シミュレーション プログラムに必要な最大値と最小値を渡してから、乱数をシミュレーションに返すことができるようにしたいと考えています。

ランダマイザーを起動し、最大値と最小値を渡すためにシミュレーションに書き込む必要があるコードがわからず、見つけることができません。

ありがとうございました!

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 準拠の OS を使用していると仮定すると、 をsocketpair使用して双方向チャネルを作成できます (または、 を 2 回呼び出すこともできますpipe)。次に、バリアントforkの 1 つを使用して機能を実装します。execこれについては、こちらで説明しています。

しかし、他の人が示唆しているように、乱数ジェネレーターの機能を関数としてプログラムに組み込む必要があります。

于 2012-06-07T19:06:49.977 に答える
1

最良の方法は、ランダム ジェネレーターからライブラリを作成し、それに対してリンクすることです。execv()それ以外の場合は、関数を検索できます。

于 2012-06-07T19:02:59.470 に答える