Dzina
Yembekezerani, dikirani - dikirani njira yothetsera
Zosinthasintha
#phatikiza
#phlude
pid_t dikirani (int * chikhalidwe );
pid_t waitpid (pid_t pid , int * chikhalidwe , int zochita );
Kufotokozera
Ntchito yodikirira imapangitsa kuti ntchitoyo ichitike mpaka mwana atachokapo, kapena mpaka ataperekedwa chizindikiro chomwe chitha kuthetsa ntchito yomwe ikuchitika panopa kapena kuyitanitsa kayendedwe ka chizindikiro. Ngati mwana wachoka kale pa nthawi ya kuyitana (ndondomeko yotchedwa "zombie"), ntchitoyo imabwerera mwamsanga. Njira iliyonse yamagwiritsidwe ntchito ndi mwanayo imamasulidwa.
Ntchito yowopsya imathetsa kuchitidwa kwa ndondomeko yamakono mpaka mwanayo atanenedwa ndi ndondomeko ya pid , kapena mpaka chizindikiro chikuperekedwa chomwe chitha kuthetsa ntchito yomwe ikuchitika kapena kuyitanitsa kayendedwe ka chizindikiro. Ngati mwanayo atafunsidwa ndi pid watuluka kale ndi nthawi ya kuyitana (njira yotchedwa "zombie"), ntchitoyo imabwerera mwamsanga. Njira iliyonse yamagwiritsidwe ntchito ndi mwanayo imamasulidwa.
Phindu la pid lingakhale limodzi mwa:
<-1
kutanthawuza kudikira njira iliyonse ya mwana yomwe chidziwitso cha gulu la ndondomeko ndi chofanana ndi mtengo wa pid .
-1
kutanthauza kuyembekezera njira iliyonse ya mwana; ichi ndi khalidwe lomwe likuyembekezera mawonetsedwe.
0
kutanthauza kuyembekezera njira iliyonse ya mwana yomwe chidziwitso cha gulu la ndondomeko chikufanana ndi chiyitanidwe cha kuyitana.
> 0
zomwe zikutanthauza kuyembekezera mwana yemwe ndondomeko yake ikufanana ndi mtengo wa pid .
Mtengo wa zosankha ndi OR kapena zero kapena zina mwazifukwa izi:
WNOHANG
zomwe zikutanthauza kubwerera mwamsanga ngati palibe mwana wapita.
WUNTRACED
zomwe zikutanthauza kubwereranso kwa ana omwe atsekedwa, ndi omwe udindo wawo sunayambe kuwonetsedwa.
(Zokonda za Linux okha, wonani pansipa.)
Ngati chikhalidwe sichoncho NULL , dikirani kapena mudziwe momwe malo adasungidwira malo omwe amaloledwa ndi chikhalidwe .
Mkhalidwewu ukhoza kuyesedwa ndi macros otsatirawa (ma macroswa amatenga chizindikiro ( int ) ngati mkangano --- osati pointer ku buffer!):
WIFEXITED ( udindo )
sikuti si zero ngati mwanayo achoka mwachizolowezi.
WEXITSTATUS ( udindo )
amayesa pa mabungwe osachepera asanu ndi atatu a chikhomodzinso cha mwana wobwereza chomwe chinatha, chomwe chikhoza kukhazikitsidwa monga kutsutsana kuitanidwe kuti achoke () kapena ngati ndemanga ya mawu obwereza pulogalamu yaikulu. Izi zazikulu zingangoyesedwa ngati WIFEXITED wabwerera osati zero.
WIFSIGNALED ( udindo )
imabwereranso ngati mwanayo atuluka chifukwa cha chizindikiro chomwe sichinagwidwe.
WTERMSIG ( udindo )
amabwezera chiwerengero cha chizindikiro chomwe chinapangitsa kuti mwanayo athetse. Izi zazikulu zimangoyesedwa ngati WIFSIGNALED wabwerera osati zero.
WIFSTOPPED ( udindo )
kubwezeretsa zoona ngati njira ya mwana yomwe inachititsa kuti kubwerera kwalephereke; izi ndizotheka ngati mayitanidwewo akugwiritsidwa ntchito pogwiritsa ntchito WUNTRACED .
WSTOPSIG ( udindo )
amabwezera chiwerengero cha chizindikiro chimene chinachititsa mwanayo kusiya. Izi zazikulu zingangowonongeka ngati WIFSTOPPED ibwerera osati zero.
Mabaibulo ena a Unix (mwachitsanzo, Linux, Solaris, koma osati AIX, SunOS) amafotokozeranso WCOREDUMP ( chikhalidwe ) chachikulu kuti ayese ngati njira ya mwanayo idasinthira. Gwiritsani ntchito izi zomwe zili mu #ifdef WCOREDUMP ... #endif.
Bweretsani Mtengo
Chidziwitso cha mwanayo chomwe chinachokera, kapena zero ngati WNOHANG anagwiritsidwa ntchito ndipo palibe mwana yemwe analipo, kapena -1 pa zolakwika (pamtundu umenewo errno yaikidwa pa mtengo woyenera).
Zolakwika
ECHILD
ngati ndondomeko ikufotokozedwa pid palibe kapena si mwana wa kuyitanitsa. (Izi zikhoza kuchitika kwa mwana wanu ngati chochita cha SIGCHLD chikayikidwa ku SIG_IGN. Onaninso ndime za LINUX zazing'onoting'ono.)
EINVAL
ngati zosankhazo zinali zosayenera.
EINTR
ngati WNOHANG sanakhazikitsidwe ndi chizindikiro chosatsekedwa kapena SIGCHLD inagwidwa.