UNIX: testo della esercitazione 4 in laboratorio su primitive per la ...
UNIX: testo della esercitazione 4 in laboratorio su primitive per la ...
UNIX: testo della esercitazione 4 in laboratorio su primitive per la ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
}<br />
pid, WEXITSTATUS(status));<br />
else<br />
pr<strong>in</strong>tf("Il figlio %d non ha term<strong>in</strong>ato correttamente\n",pid);<br />
}<br />
exit(0);<br />
Modificare il programma <strong>in</strong> modo tale che il processo padre attenda il completamento dei<br />
processi figli nello stesso ord<strong>in</strong>e <strong>in</strong> cui sono stati creati.<br />
Esercizio<br />
7: utilizzo di execv()<br />
#<strong>in</strong>clude <br />
#<strong>in</strong>clude <br />
<strong>in</strong>t ma<strong>in</strong>()<br />
{<br />
<strong>in</strong>t status;<br />
pid_t pid;<br />
char* arg[]= {"ls", "-l", "/usr/<strong>in</strong>clude"};<br />
if ((pid=fork())==0)<br />
{<br />
/* CODICE ESEGUITO DAL FIGLIO */<br />
execv("/b<strong>in</strong>/ls", arg);<br />
/* Si torna solo <strong>in</strong> caso di errore */<br />
exit(-1);<br />
}<br />
else<br />
{<br />
/* CODICE ESEGUITO DAL PADRE */<br />
wait(&status);<br />
pr<strong>in</strong>tf("exit di %d con %d\n", pid, status);<br />
}<br />
}<br />
exit(0);<br />
Esercizio<br />
8: Il programma richiede <strong>la</strong> presenza di due file di <strong>testo</strong> f1 e f2<br />
#<strong>in</strong>clude <br />
#<strong>in</strong>clude <br />
<strong>in</strong>t ma<strong>in</strong>()<br />
{<br />
<strong>in</strong>t status;<br />
pid_t pid;<br />
char *env[] = {"TERM=vt100", "PATH=/b<strong>in</strong>:/usr/b<strong>in</strong>", (char *) 0 };