Rechercher une page de manuel
wait
Langue: it
Version: Marzo 1998 (ubuntu - 16/08/07)
Section: 2 (Appels système)
NAME
wait, waitpid - attende la fine di processiSINTASSI
#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.1VEDI ANCHE
signal(2), wait4(2), signal(7)-+- Jean Cocteau -+-
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre