Isem
stenna, waitpid - stenna għat-terminazzjoni tal- proċess
Sinteżi
#include
#include
pid_t wait (int * status );
pid_t waitpid (pid_t pid , int * status , għażliet int );
Deskrizzjoni
Il-funzjoni ta ' stennija tissospendi l-eżekuzzjoni tal-proċess kurrenti sakemm jitlaq mit-tfal, jew sakemm jitwassal sinjal li l-azzjoni tiegħu tkun li ttemm il-proċess attwali jew li titlob funzjoni ta' mmaniġġjar tas-sinjal. Jekk tifel diġà ħarġu mill-ħin tas-sejħa (proċess hekk imsejjaħ "zombie"), il-funzjoni terġa 'lura immedjatament. Kwalunkwe riżorsi tas-sistema użati mit-tfal huma meħlusa.
Il-funzjoni stennija tissospendi l-eżekuzzjoni tal-proċess kurrenti sakemm it-tifel kif speċifikat mill-argument pid ikun ħareġ, jew sakemm jitwassal sinjal li l-azzjoni tiegħu tkun li ttemm il-proċess kurrenti jew li titlob funzjoni ta 'mmaniġġjar tas-sinjal. Jekk tifel kif mitlub minn pid diġà ħarġu mill-ħin tas-sejħa (proċess hekk imsejjaħ "zombie"), il-funzjoni terġa 'lura immedjatament. Kwalunkwe riżorsi tas-sistema użati mit-tfal huma meħlusa.
Il-valur ta ' pid jista' jkun wieħed minn:
<-1
li tfisser li wieħed jistenna kwalunkwe proċess tat-tfal li l-ID tal-grupp ta 'proċess huwa ugwali għall-valur assolut ta' pid .
-1
li tfisser li wieħed jistenna kwalunkwe proċess tat-tfal; din hija l-istess imġieba li tistenna l- wirjiet.
0
li tfisser li wieħed jistenna kwalunkwe proċess tat-tfal li l- ID tal- grupp ta 'proċess huwa ugwali għal dak tal-proċess tas-sejħa.
> 0
li tfisser li wieħed jistenna lit-tifel li l-ID tal-proċess tiegħu huwa ugwali għall-valur ta ' pid .
Il-valur tal- għażliet huwa OR ta 'żero jew aktar mill-kostanti li ġejjin:
WNOHANG
li jfisser li jirritorna immedjatament jekk l-ebda wild ma jkun għadu għaddej.
MIKSUBA
li jfisser ukoll ritorn għal tfal li huma mwaqqfa, u li l-istatus tagħhom ma ġiex irrappurtat.
(Għal għażliet ta 'Linux biss, ara hawn taħt.)
Jekk l- istatus ma jkunx NULL , stenna jew tistenna l- informazzjoni dwar l-istatus tal-maħżen fil-post indikat mill- istatus .
Dan l-istatus jista 'jiġi evalwat bil-makros li ġejjin (dawn il-makri jieħdu l-buffer statiku ( int ) bħala argument --- mhux pointer għall-buffer!):
WIFEXITED ( status )
mhix żero jekk il-wild telaq normalment.
WEXITSTATUS ( status )
jevalwa l-inqas tmien bits sinifikanti tal-kodiċi tar-ritorn tat-tifel li tterminat, li setgħu ġew stabbiliti bħala l-argument għal sejħa għall- ħruġ () jew bħala l-argument għal dikjarazzjoni ta ' ritorn fil-programm prinċipali. Dan il-makro jista 'jiġi evalwat biss jekk WIFEXITED jerġa' lura żero.
WIFSIGNALED ( status )
jirritorna veru jekk il-proċess tat-tfal ħareġ minħabba sinjal li ma ġiex maqbud.
WTERMSIG ( status )
jirritorna n-numru tas-sinjal li kkawża t-terminazzjoni tal-proċess tat-tfal. Dan il-makro jista 'jiġi evalwat biss jekk WIFSIGNALED irritorna mingħajr żero.
WIFSTOPPED ( status )
jirritorna veru jekk il-proċess tat-tfal li kkawża r-ritorn huwa attwalment imwaqqaf; Dan huwa possibbli biss jekk is-sejħa tkun saret bl-użu ta ' WRITUTA .
WSTOPSIG ( stat )
jirritorna n-numru tas-sinjal li kkawża t-twaqqif tat-tarbija. Dan il-makro jista 'jiġi evalwat biss jekk WIFSTOPPED irritorna żero.
Xi verżjonijiet ta 'Unix (eż. Linux, Solaris, iżda mhux AIX, SunOS) jiddefinixxu wkoll makro WCOREDUMP ( status ) biex jiġi ttestjat jekk il-proċess tat-tfal qalbx il- qalba. Uża biss dan magħluq fi #defdef WCOREDUMP ... #endif.
Valur tar-Ritorn
L-ID tal-proċess tat-tifel li ħareġ, jew żero jekk WNOHANG intuża u l-ebda tifel ma kien disponibbli, jew -1 fuq żball (f'liema każ l- errno huwa stabbilit għal valur xieraq).
Żbalji
ECHILD
jekk il-proċess speċifikat fi pid ma teżistix jew mhux tifel tal-proċess tas-sejħa. (Dan jista 'jiġri għat-tifel stess jekk l-azzjoni għal SIGCHLD hija ssettjata għal SIG_IGN. Ara wkoll is-sezzjoni ta' LINUX NOTES dwar ħjut.)
EINVAL
jekk l-argument tal- għażliet kien invalidu.
EINTR
jekk WNOHANG ma ġiex issettjat u kien maqbud sinjal mhux żblukkat jew SIGCHLD .