マネージャー プロセスから複数のプロセスをフォークしています。次に、これらのフォークされたプロセスがリッスンするためのランダムなポート番号を作成したいと思います。ただし、ランダムにシードして乱数を取得すると、3 つのプロセス間で同じ数が取得されます。例えば:
マネジャー:
int main(){
for(int i = 0; i < rCount; i++){
pid_t pid = fork();
if (pid == 0) {// child
execl(ROUTERLOCATION,"",NULL); //create router process
}
else { // parent
}
}
}
ルーター:
int main(){
randomPort();
}
void randomPort(){
srand(time(NULL));
int host_port = rand() % 99999 + 11111;
cout << houst_port << endl;
}
私はマネージャーでシードを試み、次にプロセスでランドを試みましたが、ランドできるときに同じ数を取得するという同じ問題がまだあります。時間以外でシードしても、ランダムな結果が得られますか?