我從管理進程派生多個進程。然後我想爲這些分叉的進程創建一個隨機端口號來進行監聽。然而,當我種子隨機,並獲得一個隨機數,我得到了三個進程之間相同的數字。例如:分叉進程之間的隨機數是相同的
經理:
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;
}
我試圖播種的經理,然後在過程中努力蘭特,但我仍然有獲得同樣的問題我可以隨機發送相同的數字。除了時間之外,我可以種下任何東西,並且仍然可以得到好的隨機結果。
嘗試時間加過程號。 –
這是個好主意。我想接受它,但它是一個評論。如果你想要代表,將其添加爲答案,我會接受。 – nook