Я пытаюсь написать функцию, которая рекурсивно вычисляет результирующее число Фибоначчи из заданного int n, используя вилки в C.
Вот спецификация функции: Если печать верна, распечатайте ее. В противном случае предоставьте это родительскому процессу. Решение должно быть рекурсивным, и оно должно создавать нового дочернего элемента для каждого вызова. Каждый процесс должен вызывать doFib () ровно один раз. Подпись метода не может быть изменена. Вспомогательные функции не могут быть использованы.
Вот что я написал до сих пор, основываясь на моем понимании форка. Я пытаюсь разветвляться дважды, чтобы я мог порождать два дочерних процесса. Один, чтобы сделать FIB (N-1) и один, чтобы сделать FIB (N-2). Таким образом, я могу получить оба результата и объединить их.
* * 1010
Мои вопросы:
1. Как получить оба значения выхода из двух дочерних процессов? Я знаю, как получить один (см. Код), но как мне их обоих захватить?
2. Поскольку doFib не возвращает значение, как я могу получить значение моего вызова doFib в любом из моих дочерних процессов, чтобы я мог объединить их?
3. Я правильно делаю свою вилку? Я был уверен с одной вилкой, от двух у меня болит голова.
Это практическая промежуточная проблема серии, над которой я сейчас работаю, чтобы подготовиться к предстоящему экзамену.