我一直在谷歌搜索有關我的問題2天,但即時通訊完成。我有關於進程管理,fork等非常基本的信息。我被告知創建一個同一父進程的一些子進程,並通過使用管道向它們發送種子,以便它們可以產生一些隨機數,這些都是爲了他們自己的。但我堅持創建子進程。讓孩子進程等待另一個循環
for (i = 0; i < NUM_PLAYERS; i++) {
/* TODO: spawn the processes that simulate the players */
switch(pid = fork()){
case -1: // ERROR
exit(EXIT_FAILURE);
case 0: // CHILD PROCESS
printf("My parent id is %d \n", getppid());
exit(EXIT_SUCCESS);
default: // PARENT PROCESS
wait(NULL);
}
}
當我使用此代碼去,父母創造NUM_PLAYERS
孩子,但我似乎不能在另一個使用它們for循環,因爲他們在案件0年底已經終止。當我剛剛刪除exit(EXIT_SUCCESS);
線,創建了很多流程,並且擁有所有不同的父母。所以我的問題是,如何正確地創建子進程並在以後使用它們?
我其實不知道該怎麼做。我應該刪除'wait(NULL);'並將它放在另一個循環中嗎? –