Я пытаюсь найти способ подсчета количества процессов, созданных в цикле for длиной 10 с вызовом fork(). Легко видеть, что результат равен 2^n для n вызовов, но мне нужен способ вычислить его в программе.Подсчитать количество процессов, созданных с использованием fork в цикле for
Я нашел почти идентичный вопрос в here. Однако, когда я тестировал второе решение, данное здесь, он работает нормально для нескольких вилок меньше 10. Для 10 он задерживает 256. Почему? И есть ли другое решение этой проблемы? (кроме использования труб). Вот фактический код:
for(i=1; i<=10; i++) {
fork();
printf("The process with the PID=%d\n", getpid());
}
Откуда берутся 256, это в этом printf? – teppic
Это не исходит из приведенной здесь последовательности кода, она исходит из printf в решении, указанном в ссылке. Должен ли я опубликовать этот код? – user2971971
Я не смотрел код, но я знаю, что 'fork' возвращает -1, когда он терпит неудачу, что может привести к этому 256. – teppic