1
我已經分了一個進程n次有n個孩子。分叉後,在某個時候,我需要在每個子進程中生成一個隨機數,所以我寫了一個聲明來這樣做。但在繼續之前,我希望看到每個孩子在終端上生成的隨機數。當我寫printf()時,我只得到一個輸出,我相信它是父代產生的隨機數。有人可以幫助我如何讓所有子進程打印變量rnd_number在其地址空間中保存的值嗎?打印每個子進程生成的值c
此外,由於每個孩子都會執行聲明,要求他們打印他們的rnd_number值,所以我不知道是什麼讓他們不能在終端上打印。如果我混合了一些概念,我請求有人幫助我。
感謝您的回覆。但是,我需要這樣做: 'for(i = 0; i
user4102404
2014-10-09 04:16:47
您可以使用waitpid();並在每個放置在陣列上的pid上循環。這幫助你嗎? – Mekap 2014-10-10 05:33:04
不幸的是,它並沒有幫助。即使我等待孩子們的pid,printf似乎也不會在控制檯上輸出數據。爲了確保緩衝區被刷新,我也使用了fflush()。 printf最終打印變量的本地值,而不是由子進程計算的值。 – user4102404 2014-10-10 08:43:44