Rechercher une page de manuel

Chercher une autre page de manuel:

wait

Autres langues

Langue: it

Version: Marzo 1998 (ubuntu - 16/08/07)

Section: 2 (Appels système)

NAME

wait, waitpid - attende la fine di processi

SINTASSI

#include <sys/types.h>
#include <sys/wait.h>

pid_t wait(int *stato)
pid_t waitpid(pid_t pid, int *stato, int opzioni);

DESCRIZIONE

La funzione wait sospende l'esecuzione del corrente processo fino a che un suo figlio termina, oppure fino a quando gli viene lanciato un segnale che provoca o la sua terminazione, o l'esecuzione dell'handler associato.

Se un processo figlio è già terminato prima della chiamata della funzione ( un tale processo è detto "zombie" ), la funzione ritorna immediatamente. Ogni risorsa usata dal figlio viene poi liberata.

La funzione waitpid sospende l'esecuzione del processo fino a che il figlio specificato dal' argomento pid è terminato, oppure fino a quando gli viene lanciato un segnale che provoca o la sua terminazione, o l'esecuzione dell'handler associato.

Se il processo specificato dall'argomento pid è già terminato prima della chiamata della funzione ( un tale processo è detto "zombie" ), la funzione ritorna immediatamente. Ogni risorsa usata dal figlio viene poi liberata.

Il valore di pid può essere :

< -1
per attendere la fine di ogni processo il cui group ID è uguale al valore assoluto di pid .
-1
per attendere la fine di un qualunque processo figlio . Si ha lo stesso comportamento della funzione wait
0
per attendere la fine di un processo appartenente al proprio group ID
> 0
per attendere la fine di un figlio il cui process ID è uguale a pid.

I valori di opzioni è zero o un OR di una delle seguenti costanti

WNOHANG
garantisce il ritorno immediato se nessun figlio è terminato.
WUNTRACE
impone il ritorno se un figlio è in stato di STOP; il suo stato non sarà riportato.

Se stato non è NULL, wait o waitpid vi memorizzano lo stato nell'indirizzo puntato da stao.

Questo stato può essere valutato con le seguenti macro ( queste macro si aspettano lo stato come argomento, non il suo puntatore ! ) :

WIFEXITED(status)
vale non-zero se il figlio è terminato normalmente.
WEXITSTATUS(status)
restituisce gli 8 bit meno significativi del codice di uscita del figlio appena terminato; il codice di ritorno viene impostato o con la chiamata a exit() o come argomento del return statement della funzione main(). Questa macro può essere valutata solo se WIFEXITED ritorna un non-zero.
WIFSIGNALED(status)
restituisce vero se il processo figlio ritorna a causa di un segnale non intercettato.
WTERMSIG(status)
restituisce il numero del segnale che a causato la fine del processo. Questa macro ha senso solo se WIFSIGNALED ha restituito un non-zero.
WIFSTOPPED(status)
restituisce vero se il figlio che ha causato il ritorno è in stato di STOP; questo è possibile solo se è stato utilizzato il flag WUNTRACED.
WSTOPSIG(status)
restitusce il numero del segnale che ha causato lo stato di STOP Questa macro può esere valutata se WIFSTOPPED restituisce true.

VALORI RESTITUITI

Il process-ID del figlio che è terminato, o -1 in caso di errore o 0 se se WNOHANG è stato usato e non è terinato nessun processo figlio in questo caso errno è impostata ad un valore appropiato).

ERRORI

ECHILD
se il processo specificato con pid non esiste.
EPERM
se l'effettivo userid del processo chiamante non è compreso tra quelli che possono mettersi in attesa su quel processo, e l'effettivo userid non è quello del superuser.
ERESTARTSYS
se WNOHANG non è stato impostato e è stato intercettato un segnale non bloccante o un SIGCHLD ; questa è un'estensione degli standard POSIX.1 e SVr4.

CONFORME AGLI STANDARD

SVr4, POSIX.1

VEDI ANCHE

signal(2), wait4(2), signal(7)
Les miroirs feraient bien de réfléchir avant de renvoyer les images.
-+- Jean Cocteau -+-