Я делаю поисковые запросы Google о моем вопросе в течение 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
детей, но я не могу показаться, чтобы использовать их в другой цикл, так как они были прекращены в конце случае 0. Когда я просто удалить exit(EXIT_SUCCESS);
линию, так много процессов созданы, и у них есть все разные родители. Поэтому мой вопрос заключается в том, как правильно создавать дочерние процессы и использовать их позже?
На самом деле у меня нет идеи, как это сделать. Должен ли я удалить 'wait (NULL);' и поместить его в другой цикл? –