Dziwani kudikira kwa Linux

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.