У меня есть файл C, который выглядит так:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
pid_t child_pid;
printf ("The PID is %d\n", (int) getpid ());
child_pid = fork ();
if (child_pid != 0)
{
printf ("this is the parent process, with PID %d\n",
(int)getpid());
printf ("the child's PID is %d\n", (int) child_pid);
}
else
printf ("this is the child process, with PID %d\n",
(int)getpid());
return 0;
}
Мне нужно изменить его, чтобы создать иерархию, которая выглядит как
parent (0)
|
+---> child (1)
|
+---> child (2)
|
+----> child (3)
|
+----> child (4)
|
+----> child (5)
|
В основном древовидная структура, в которой каждый второй дочерний элемент создает двух новых дочерних элементов. Насколько я понимаю, когда я fork() процесс, каждый процесс будет работать одновременно. Кажется, что добавление fork() в оператор if работает и правильно создает процессы от 0 до 2, поскольку только родитель создаст новую вилку. Но я понятия не имею, как сделать разветвление процесса 2, а не 1. Есть идеи?
ulimit.) Просто пытаюсь помочь. - person dmckee --- ex-moderator kitten   schedule 06.08.2009