Ikasi Linux Command - itxaron

izena

itxaron, waitpid - itxi prozesuaren amaiera

Laburpena

#include
#include

pid_t wait (int * status );
pid_t waitpid (pid_t pid , int * status , int aukerak );

deskribapena

Itxaroten funtzioak uneko prozesuaren exekuzioa eten du, ume bat utzi arte edo seinalea entregatu arte, zeinaren ekintza uneko prozesua amaitzeko edo seinaleen manipulazio funtzioa deitzeko. Haur batek dei egin duen unean dagoenean ("zombie" deiturikoa) prozesua badago, funtzioak berehala itzultzen du. Umeek erabilitako baliabide guztiak libratuko dira.

The waitpid funtzioak uneko prozesua exekutatzen uzten du, pid argumentuak zehaztutako ume gisa arte, edo seinale bat entregatu arte, uneko prozesua amaitzeko edo seinaleen manipulazio funtzioa deitzeko. Pid- ek eskatutako umea dagoeneko deitzen den unean ("zombie" prozesua deitzen denetik aurrera), funtzioak berehala itzultzen du. Umeek erabilitako baliabide guztiak libratuko dira.

Pidren balioa hauetako bat izan daiteke:

<-1

Horrek esan nahi du umeen prozesua itxaroten duen prozesu-taldearen IDa pidaren balio absolutuaren berdina den.

-1

Horrek esan nahi du haurraren edozein prozesu itxarotea; hau erakusteko itxaropen bera da.

0

Horrek esan nahi du haurraren prozesua itxaroten duen prozesu-taldearen identifikazioa prozesuaren prozesuaren berdina dela.

> 0

Horrek esan nahi du haurraren itxarotea zein prozesu IDa pidaren balio berdina den.

Aukeren balioa zero edo gehiagoren ondorengo konstanteen OR bat da:

WNOHANG

Horrek esan nahi du berehala itzuliko ez balitz haurra irten bada.

WUNTRACED

Horrek esan nahi du gelditu diren umeei ere itzultzea eta horren egoera ez dela jakinarazi.

(Linux-bakarrik aukerak, behean ikusi).

Egoera ez bada NULL , itxaron edo itxaron egoera egoeraren informazioa egoeraren arabera egoera adierazi.

Egoera hau ondorengo makroekin ebaluatu daiteke (makro hauek stat buffer ( int bat) argumentu gisa hartzen dute --- ez da bufferrari erakuslea!):

WIFEXITED ( egoera )

ez-zeroa umeak normalean irten bada.

WEXITSTATUS ( egoera )

ebatzi duen umearen itzulerako kode zortzi bitarteko gutxienez zortzi bitarteko balioespenak ebaluatzen ditu, hau da, irteera deitzeko dei baterako argumentua izan daiteke () edo programa nagusiaren itzulera- adierazpenaren argumentua bezala. Makro hau soilik ebaluatu daiteke WIFEITED ez bada zero itzuli.

WIFSIGNALED ( egoera )

Egia itzultzen du haurraren prozesua irten bada eta ez da harrapatu.

WTERMSIG ( egoera )

amaierako prozesua hautsi duen seinale kopurua itzultzen du. Makro hau soilik ebaluatu daiteke WIFSIGNALED -k zero ez badu.

WIFSTOPPED ( egoera )

Egia itzultzen du bueltan eragindako umearen prozesua gelditzen bada; Hau posiblea da soilik deia egin bada WUNTRACED erabiliz.

WSTOPSIG ( egoera )

umea geldiarazi duen seinale kopurua itzultzen du. Makro hau soilik ebaluatu daiteke WIFSTOPPEDek zero-ez itzultzen baldin badu .

Unix bertsio batzuk (adibidez, Linux, Solaris, baina ez AIX, SunOS) definitzen ditu, halaber, makro WCOREDUMP ( egoera ) haurraren prozesua nukleoaren dabilen ala ez egiaztatzeko. Erabili hau soilik #ifdef WCOREDUMP ... #endif atalean.

Return Value

Hautatu den umearen ID prozesua, edo zero WNOHANG erabili bada eta ume bat ez zegoen erabilgarri, edo -1 errore batean (kasu horretan errno balio egokia ezartzen da).

Akatsak

ECHILD

zehaztutako prozesua badaude Pid ez da existitzen edo ez da deialdiaren prozesua. (Hau gertatuko da norberaren semearentzat, SIGCHLDren ekintza SIG_IGN gisa ezarrita badago. Ikusi hariari buruzko LINUX NOTES atala.)

EINVAL

Aukeren argumentua baliogabea bada.

EINTR

WNOHANG ez bada ezarri eta desblokeatutako seinalea edo SIGCHLD bat harrapatu badira.