Nome
Aspettu, espertu - aspittà per a terminazione di u processu
Sinopsia
#include
#include
pid_t wait (int * status );
pid_t waitpid (pid_t pid , int * status , int options );
Descrizzione
A funzioni d'aghjurnà suspende l'esekzione di u prucessu attuale finu à chì un zitellu hè sminutu, o finu à chì un signalu hè entru l'accionu hè d'abbandunà u prucessu attuale o di chjamà una funzione di manighjà di signalà. Se un zitellu hè stata sappiutu da u tempu di a chjamata (un prucessu di "zombie"), a funzione retorna immedtamente. Ogni risorsu di u sistema utilizatu da u zitellu sò liberati.
A funesta waitpid suspende l'esekzione di u prucessu attuale finu à chì un ziteddu cusì specifatu per l'argumentu pid hà sguassatu, o finu à chì un signale hè entru l'accetta di quellu di finiscinu u prucessu attuale o di chjamà a funzione di manighjà di signalà. Se un zitellu cumu dumandatu per pid hà digià smarratu da u tempu di a chjamata (un prucessu chjamatu "zombie"), a funzione retorna immedtamente. Ogni risorsu di u sistema utilizatu da u zitellu sò liberati.
U valore di pid pò esse unu di:
<-1
chì significheghja aspittà per qualsiasi prucessu maternu chì u furmatu di u gruppu di prucessu hè uguali à u valore assolutu di u pid .
-1
chì significheghja aspittà per qualunqui procuratu; Questu hè u listessu cumpurtamentu chì dete esce.
0
chì significheghja aspittà per qualsiasi prucessu maternu chì u furmatu di u gruppu di processu hè uguali à quellu di u prucessu chjamatu.
> 0
chì significheghja aspittà per u zitellu chì u vostru ID di processe hè uguali à u valore di u pid .
U valore di l' opzioni hè un OR de zero o più di e custanti seguenti:
WNOHANG
chì significa di vultà immediatament s'ellu ùn hè micca sughjettu.
ATRATA
chì vole ancu di ritornu per i zitelli chì sò stati, è chì u so status hè micca statu infurmatu.
(Per opzioni solu di Linux, vede quì sottu).
S'ellu ùn hè statu NULL , aghjustà o stèdite l'estatica di l'estatica di almacenamento in u locu indicatu per u statutu .
Questu statutu ponu esse evaluatu cù e macrosi siguenti (queste macros pigghianu l'statutu buffer (un int ) com'è argumentu --- micca un puntero à u buffer!):
RITORNATA ( status )
hè micca nimu si u zitellu sguassatu normalment.
WEXITSTATUS ( status )
evalueghja à l'altru significativu ottu pezzi di u codice di u reticciu di u zitellu chì finita, chì pò esse stabilitu com'è l'argumintazzioni à una chjamata à surtite () o cum'è l'argumintazzioni per una stima di ritornu in u prugramma principale. Questa macro pò esse evaluata solu se WIFEXITED riturnò nisiru.
WIFSIGNALED ( status )
Turnate vera si u procuratu di u zitellu sò fora da un signale chì ùn era micca attitatu.
WTERMSIG ( status )
torna u numaru di u signale chì hà causatu à u prucedimentu di zitellu finiscinu. Questa macro pò esse evaluata solu se WIFSIGNALED volte à non-zero.
WIFSTOPPED ( status )
torna verissime se u prucessu zitellu chì pruvucà a vultata hè attualmente cadurata; questu hè solu pussibile si u chjamatu hè stata fatta cun UTRATU .
WSTOPSIG ( status )
torna u numaru di u signale chì hà permessu chì u zitellu parò. Questa macro pò esse evaluata solu se WIFSTOPPED volte à non-zero.
Alcuni versioni di Unix (per esempiu, Linux, Solaris, ma micca AIX, SunOS) defineanu puru una macro WCOREDUMP ( status ) per pruvà si u zitellu prugramu di u core di dumping. Solu aduprà chjusu in #ifdef WCOREDUMP ... #endif.
Ritorna Valurita
L'identità di processu di u zitellu chì hè sughjettu, o cero se WNOHANG hè stata utilizata è micca un ziteddu era dispunibile, o -1 nantu à errore (in quale casu errno hè stituutu à un valore appropritatu).
Errori
CUNDIZ
se u processu especificatu pidò ùn esisti micca o ùn hè micca un zitellu di u prucessu chjamatu. (Cumu possu successu per u so propiu babbu si l'action per SIGCHLD hè settore à SIG_IGN. Vede ancu a pagina di LINUX NOTES nantu à i filamenti.)
EINVAL
se l'argumentu di l' opzioni era micca validu.
EINTR
se WNOHANG ùn hè micca stabilitu è un signalu micca liberatu o un SIGCHLD hè stata capata.