Skip to main content

Palauk - Linux Command - Unix Command

Anonim

vardas

palauk, waitpid - laukti proceso nutraukimo

Anotacija

#include #include

pid_t palauk (int * statusas );pid_t waitpid (pid_t pid , int * statusas int galimybės );

apibūdinimas

Thelaukti funkcija sustabdo dabartinio proceso vykdymą, kol vaikas išeis, arba kol bus pateiktas signalas, kurio veiksmas yra nutraukti dabartinį procesą arba skambinti signalų tvarkymo funkcijai. Jei vaikas jau baigėsi pokalbio metu (vadinamasis "zombių" procesas), funkcija grąžinama iš karto. Bet kokie sistemos ištekliai, kuriuos naudoja vaikas, yra išlaisvinti.

Thewaitpid funkcija sustabdo dabartinio proceso vykdymą iki vaiko, kaip nurodyta pid argumentas pasitraukė arba kol nepateikiamas signalas, kurio veiksmas yra nutraukti dabartinį procesą arba skambinti signalų tvarkymo funkcijai. Jei vaikas prašo pid jau baigėsi pokalbio metu (vadinamasis "zombių" procesas), funkcija grąžinama iš karto. Bet kokie sistemos ištekliai, kuriuos naudoja vaikas, yra išlaisvinti.

Vertė pid gali būti vienas iš:

< -1

o tai reiškia laukti bet kurio vaiko proceso, kurio proceso grupės ID yra lygus absoliučiajai pid .

-1

o tai reiškia laukti bet kurio vaiko proceso; tai yra tas pats elgesys, kurislaukti eksponatai.

0

o tai reiškia palaukti bet kokį vaiko procesą, kurio proceso grupės ID yra lygus skambinančio proceso.

> 0

o tai reiškia palaukti vaiko, kurio proceso ID yra lygus pid .

Vertė galimybės yra AR iš nulio ar daugiau šių konstantų:

WNOHANG

o tai reiškia grįžti iš karto, jei nė vienas vaikas neišeina.

WUNTRACED

o tai reiškia, kad taip pat grįžta už sustojusias vaikus, kurių statusas nebuvo nurodytas.

("Linux-only" parinktys, žr. Toliau.)

Jei statusas nėraNULL, laukti arbawaitpid saugoti būsenos informaciją vietovėje, kurioje nurodyta statusas .

Šią būseną galima įvertinti naudodama šias makrokomandas (šias makrokomandas ima buferį stat (anint) kaip argumentą --- ne rodiklis į buferį!):

WIFEXITED ( statusas )

jei vaikas išeina įprastai, nėra lygus nuliui.

WEXITSTATUS ( statusas )

vertinama iki mažiausiai reikšmingų aštuonių nutraukto vaiko grąžinimo kodo ašių, kurie gali būti laikomi argumentu kvietimuiišeiti () arba kaip argumentas a grįžti pareiškimas pagrindinėje programoje. Šią makrokomandą galima įvertinti tik jeiWIFEXITEDgrįžo nuliui.

WIFSIGNALED ( statusas )

grįžta tiesa, jei vaiko procesas pasibaigė dėl signalo, kuris nebuvo sugautas.

WTERMSIG ( statusas )

grąžina signalo, dėl kurio vaikas baigė darbą, skaičius. Šią makrokomandą galima įvertinti tik jeiWIFSIGNALED grįžo nuliui.

WIFSTOPPED ( statusas )

grįžta tiesa, jei vaiko procesas, dėl kurio sugrįžta, šiuo metu sustojo; tai įmanoma tik tada, kai skambutis buvo atliktas naudojantWUNTRACED.

WSTOPSIG ( statusas )

grąžina signalo, dėl kurio vaikas sustojo, numerį. Šią makrokomandą galima įvertinti tik jeiWIFSTOPPED grįžo nuliui.

Kai kurios "Unix" versijos (pvz., "Linux", "Solaris", bet ne "AIX", "SunOS") taip pat apibrėžia makrokomandąWCOREDUMP ( statusas ) išbandyti, ar vaikas išmeta branduolį. Naudokite tik šią pridedamą versiją #ifdef WCOREDUMP … #endif.

Grąžos vertė

Išvažiuoto vaiko proceso ID arba nulis, jeiWNOHANG buvo naudojamas ir neturėjo vaiko, arba -1 pagal klaidą (tokiu atveju errno yra nustatyta tinkama reikšme).

Klaidos

ECHILD

jei procesas nurodytas pid neegzistuoja arba nėra kvietimo proceso vaikas. (Tai gali nutikti savo vaikui, jei veiksmas SIGCHLD yra nustatytas kaip SIG_IGN. Taip pat žiūrėkite skyrių "LINUX NOTES" apie temas.)

EINVAL

jei galimybės argumentas neteisingas.

EINTR

jeiWNOHANG nebuvo nustatytas ir atblokuotas signalas arba aSIGCHLD buvo sugauta.