ProvaPratica 2009.01.15
Revision as of 15:05, 28 April 2014 by Stefano 92 (talk | contribs)
http://www.cs.unibo.it/~renzo/so/compiti/2009-01-15.pdf
Esercizio 1 e 2
/*
Esercizio1 (obbligatorio): (15 punti) Scrivere un programma in linguaggio C "respawn" che provveda a riattivare un
programma quando questo termina (Naturalmante o erroneamente). Es:
respawn test a b c
lancia il programma "test a b c". Se e quando questo dovesse terminare ne viene lanciato un altro uguale.
Esercizio 2: completamento dell'esercizio 1. (5 punti)
Modificare il programma dell'esercizio 1 per riattivare il programma solo se termina in modo anormale (per un segnale)
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc,char*argv[])
{
int ris;
ris=fork();
while(ris>0)
{
printf("%d\n",ris);
wait(&ris);
if (WIFSIGNALED(ris))
ris=fork();
else
return(0);
}
execvp(argv[1],argv+1);
return(0);
}
stefano92