informatica:sol:laboratorio15:esercitazionia:esercitazione7
Questa è una vecchia versione del documento!
Esercitazione 7
System calls (SC) che operano su processi e pipe senza nome. Per gli esercizi proposti si richiede di realizzare un Makefile.
Esercizio 1
Completare il codice seguente in modo che il programma calcoli i primi 13 numeri di Fibonacci utilizzando per ogni chiamata doFib un processo distinto.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
/*
* Calcola ricorsivamente il numero di Fibonacci dell'argomento 'n'.
* La soluzione deve forkare un nuovo processo che esegue una sola
* chiamata di 'doFib'.
* Se doPrint e' 1 allora la funzione lo stampa, altrimenti il
* numero calcolato va passato al processo padre.
*/
static void doFib(int n, int doPrint);
int main(int argc, char *argv[]) {
// questo programma puo' calcolare i numeri di Fibonacci solo fino a 13.
const int NMAX=13;
int arg;
if(argc != 2){
fprintf(stderr, "Usage: %s <num>\n", argv[0]);
return EXIT_FAILURE;
}
arg = atoi(argv[1]);
if(arg < 0 || arg > NMAX){
fprintf(stderr, "num deve essere compreso tra 0 e 13\n");
return EXIT_FAILURE;
}
doFib(arg, 1);
return 0;
}
informatica/sol/laboratorio15/esercitazionia/esercitazione7.1430164236.txt.gz · Ultima modifica: 27/04/2015 alle 19:50 (11 anni fa) da Massimo Torquati
