Добрый день. В настоящее время я пытаюсь создать код в Unix, чтобы создать поколение N элементов (заданных в качестве параметра). Другими словами, что основной процесс генерирует дочерний процесс (B), а этот процесс B генерирует процесс C и так далее (N раз).
Например, для N = 3 иерархия должна выглядеть как картинка, которую я прикрепляю: процесс A создает B, B создает C, а C создает D. У меня проблемы с адаптацией кода для N элементов.
Я попробовал следующее, но вывод не имеет никакого сходства с тем, что я пытаюсь достичь:
main()
{
char *a = argv[1]
int num = atoi(a);
pid_t result;
int counter = 0;
result = fork();
while (counter < num) { //Create hierarchy
if (result < 0) {
printf("fork() call number %d ", counter);
perror("failed");
exit(-1);
}
if (result) /* parent */
printf("Counter %d. Process: %d. Parent: %d\n", counter, getpid(), getppid());
else { /* child */
counter++;
result = fork();
}
exit (0);
}
Изображение для n = 3
Вся помощь очень ценится. Спасибо.