Difference between revisions of "ProvaPratica 2009.01.15"
Jump to navigation
Jump to search
Stefano 92 (talk | contribs) (Created page with "<h1>http://www.cs.unibo.it/~renzo/so/compiti/2009-01-15.pdf</h1> == Esercizio 1 == <syntaxhighlight lang="C"> #include <stdio.h> #include <stdlib.h> #include <unistd.h> i...") |
Stefano 92 (talk | contribs) |
||
Line 2: | Line 2: | ||
− | == Esercizio 1 == | + | == Esercizio 1 e 2 == |
<syntaxhighlight lang="C"> | <syntaxhighlight lang="C"> | ||
+ | /* | ||
+ | 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 <stdio.h> | ||
#include <stdlib.h> | #include <stdlib.h> |
Latest revision as of 15:05, 28 April 2014
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