11.07.2014 Views

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 ...

SHOW MORE
SHOW LESS

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 };

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!