#include #include #include #define is_child(P) P == 0 main() { sinc_fib10(); exit(0); } void sinc_fib10() { pid_t new_proc; int status; new_proc = fork(); if (is_child(new_proc)) exit(fibonacci(10)); else { wait(&status); if (WIFEXITED(status)) { printf("PAI: fib(10) = %d\n",WEXITSTATUS(status)); } else { printf("Child did not terminate normally"); } } return; } int fibonacci(int n) { if (n==0) return 1; if (n==1) return 1; return fibonacci(n-1) + fibonacci(n-2); }