新しいプロセスが開始されるたびに、(プロセスに属する) 変数に新しいランダム値を取得させたいと思います。
作成されたすべてのプロセスをランダムな秒数スリープさせるには、このランダム生成が必要です。私が使用したプログラムの最初に
srand(time(NULL))
、およびプロセスが実行する関数で使用しました
int sleeptime = rand() % 16 + 5; //that's because I need values from 5 to 20
.
そのようなことを実装しようとしましたが、すべてのプロセスで変数の値が同じであることがわかりました。
srand(..) の引数としてミリ秒単位の現在の時刻 (それぞれのプロセスが開始される時刻) を取得すると、ランダムな値が得られると思います。問題は、これに関する情報が見つからなかったことです。別のページで提案されている唯一のことは、よく知られているものです: srand(time(NULL));
(ここで、time(NULL) は現在の時刻を秒単位で返します)。
これを実装する方法を教えてください。前もって感謝します。