Foghlaim an Ordú Linux - fan

Ainm

fanacht, waitpid - fanacht le foirceannadh próisis

Achoimre

#include
#include

pid_t wait (int * stádas );
pid_t waitpid (pid_t pid , int * stádas , roghanna int );

Cur síos

Cuireann an fheidhm fan ar fionraí go gcuirfear an próiseas reatha i bhfeidhm go dtí go mbeidh leanbh ar siúl, nó go dtí go gcuirtear comhartha ar fáil a bhfuil an gníomh aige an próiseas reatha a fhoirceannadh nó feidhm láimhseála comharthaí a ghairm. Má tá an leanbh tar éis dul i bhfeidhm cheana féin le linn an ghlao (próiseas "zombie" mar a thugtar air), filleann an fheidhm láithreach. Saorthaítear aon acmhainní córas a úsáideann an páiste.

Fionraítear feidhm an fhrithánaigh ar fheidhmiú an phróisis reatha go dtí go leanann leanbh mar a shonraítear ag an argóint pid , nó go dtí go gcuirtear comhartha ar fáil a bhfuil sé de dhualgas an próiseas reatha a fhoirceannadh nó feidhm láimhseála comharthaí a ghairm. Má tá leanbh de réir mar a d'iarr an pid tar éis am an ghlao (próiseas "zombie" mar a thugtar air) a thosú cheana féin, filleann an fheidhm láithreach. Saorthaítear aon acmhainní córas a úsáideann an páiste.

Is féidir le luach an pid a bheith ar cheann de na nithe seo a leanas:

<-1

rud a chiallaíonn fanacht le haon phróiseas leanbh a bhfuil aitheantas grúpa próisis comhionann le luach iomlán pid .

-1

rud a chiallaíonn fanacht le haon phróiseas leanbh; is é seo an iompar céanna a fhanann taispeántais.

0

rud a chiallaíonn fanacht le haon phróiseas leanbh a bhfuil aitheantas grúpa próisis comhionann leis an bpróiseas glaonna.

> 0

rud a chiallaíonn fanacht leis an leanbh a bhfuil aitheantas próisis comhionann le luach an pid .

Is é OR na n- roghanna ná náid nó níos mó de na constants seo a leanas:

WNOHANG

rud a chiallaíonn go dtiocfaidh sé ar ais láithreach mura bhfuil aon leanbh ar siúl.

WUNTRACED

rud a chiallaíonn go gcuirfí ar ais do leanaí a stopadh, agus nach bhfuil a stádas tuairiscithe.

(Le haghaidh roghanna Linux-amháin, féach thíos.)

Mura bhfuil an stádas ar eolas stádais NULL , fanstáisiún stádais sa suíomh atá dírithe ar stádas .

Is féidir an stádas seo a mheas leis an macra seo a leanas (déanann na macraí seo an maolán statach (ar int ) mar argóint --- gan pointeoir ar an maolán!):

DÍOLADH ( stádas )

nach bhfuil nialasach má theastaíonn an leanbh de ghnáth.

WEXITSTATUS ( stádas )

déanann sé meastóireacht ar na hocht ocht giotán suntasacha ar a laghad de chód fillte an linbh a chríochnaigh, a d'fhéadfadh a bheith leagtha síos mar an argóint le glao chun scoir () nó an argóint le haghaidh ráiteas ar ais sa phríomhchlár. Ní féidir an macra seo a mheas ach amháin má fhill WIFEXITED neamh-nialas.

WIFSIGNALED ( stádas )

tuairisceán fíor má thosaigh an próiseas páiste mar gheall ar chomhartha nach raibh gafa.

WTERMSIG ( stádas )

tuairisceán a thabhairt ar líon na comhartha a d'fhág go dtiocfadh deireadh le próiseas an pháiste. Ní féidir an macra seo a mheas ach amháin má fhill WIFSIGNALED neamh-nialas.

WIFSTOPPED ( stádas )

tuairisceán fíor má tá an próiseas páiste a d'fhág an tuairisceán stopadh faoi láthair; ní féidir é seo ach amháin má rinneadh an glao ag baint úsáide as WUNTRACED .

WSTOPSIG ( stádas )

tuairisceán na comhartha a d'fhág an leanbh a stopadh. Ní féidir an macra seo a mheas ach amháin má d'fhill WIFSTOPPED neamh-nialas.

Sainmhíníonn roinnt leaganacha de Unix (m.sh. Linux, Solaris, ach ní AIX, SunOS) macasamhail WCOREDUMP ( stádas ) chun tástáil a dhéanamh ar an bpróiseas leanbh a dumpáil croí. Bain úsáid as seo ach amháin i #ifdef WCOREDUMP ... #endif.

Luach Tuairisceáin

ID próiseas an linbh a tháinig amach, nó náid má úsáidtear WNOHANG agus ní raibh aon leanbh ar fáil, nó -1 ar earráid (sa chás sinluachanna leagtha síos ar luach cuí).

Earráidí

ECHILD

má tá an próiseas sonraithe in níl pidin ann nó ní leanbh í den phróiseas glaonna. (Féadfaidh sé seo tarlú do leanbh amháin má tá an gníomh don SIGCHLD leagtha síos ar SIG_IGN. Féach freisin an rannóg NÓTAÍ LINUX faoi snáitheanna.)

EINVAL

má bhí an argóint roghanna neamhbhailí.

EINTR

más rud é nach raibh WNOHANG socraithe agus gabhadh comhartha dífhillteSIGCHLD .