Si vuole scrivere un programma che crea n figli tale che il figlio i-esimo dorme i secondi, con i=1,...,n e termina con successo.
Per ogni figlio creato, il programma deve stampare "- creato figlio <pid>", dove pid è il pid del processo generato. Dopo aver creato i figli, il genitore rimane in attesa perenne. La terminazione dei figli è catturata tramite il segnale SIGCHLD. Il gestore del segnale (che gira nel processo genitore) fa una wait; quando l’ultimo processo termina, il gestore del segnale manda in segnale SIGTERM a se stesso per terminare anche il genitore. Per ogni figlio terminato, il gestore del segnale stampa "* terminato figlio <pid>", dove pid è il pid del processo terminato.
La funzione deve essere incapsulata nel file E1-child-signal/e1.c in void do_work(int n) che prende come parametro il numero n di processi da creare.