Tgħallem il-Kmand Linux - stenna

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 .