indietro

  • waitpid PID,FLAG

    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.