Attende che un particolare processo figlio abbia terminato e restituisce il pid del
processo deceduto oppure -1 se tale processo non esiste. Su alcuni sistemi, un valore
0 indica che ci sono processi ancora in esecuzione. Lo stato viene restituito in $?.
Se si afferma
use POSIX ":sys_wait_h";
#...
do {
$figlio = waitpid(-1, WNOHANG);
} until $figlio > 0;
poi è possibile eseguire un wait non bloccante per tutti i processi zombi
pendenti. Il wait non bloccante è disponibile su elaboratori che supportano sia
la chiamata di sistema waitpid(2) che quella wait4(2). Comunque, l'attendere per un
particolare pid con FLAG di 0 è implementato ovunque. (Il Perl emula la
chiamata di sistema ricordando i valori dello stato dei processi che sono usciti ma che
non sono stati ancora raccolti dallo script Perl).
Va notato che su alcuni sistemi, un valore restituito pari a -1 potrebbe significare che i
processi figli sono stati automaticamente raccolti. Consultate perlipc per i dettagli e
per altri esempi.