Я сейчас изучаю операционные системы, у меня есть этот фрагмент кода, но я получаю бесконечный цикл рекурсивных вызовов, все, что я хочу, - это создать сына и вычислить Фибоначчи (с небольшими числами), я не могу понять почему сыновья вообще не могут закончить, заранее спасибо:
int fibonaci(int n) {
if(n < 2){
return n;
}
return fibonaci(n - 1) + fibonaci(n - 2);
}
int main(int argc, char* argv[]) {
//some checkings, and variables
for (i = 0; i < argc; ++i) {
son_pid = fork();
if (son_pid == 0) {
fibonaci(var); //var is some finite variable
break;
}
}
if(son_pid != 0){
while(wait(&status) != -1){}
}
return 0;
}
изм
все проверки выполнены, проблема с логикой !!!