název
počkat, waitpid - počkat na ukončení procesu
Synopse
#zahrnout pid_t wait (int * postavení );pid_t waitpid (pid_t pid , int * postavení , int možnosti );
ThePočkejte funkce pozastaví provádění aktuálního procesu až do okamžiku, kdy dítě opustí, nebo dokud nebude vydán signál, jehož úkolem je ukončení aktuálního procesu nebo vyvolání funkce zpracování signálu. Pokud dítě již skončilo v době volání (tzv. "Zombie"), funkce se okamžitě vrátí. Jakékoli systémové prostředky používané dítětem jsou uvolněny. Thewaitingpid funkce pozastaví provádění aktuálního procesu až do doby, kdy je dítě uvedeno pid Argument byl ukončen nebo dokud není vydán signál, jehož úkolem je ukončení aktuálního procesu nebo vyvolání funkce zpracování signálu. Pokud dítě požaduje pid již skončila v době volání (tzv. "zombie" proces), funkce se okamžitě vrátí. Jakékoli systémové prostředky používané dítětem jsou uvolněny. Hodnota pid může být jedním z následujících: < -1 což znamená čekat na jakýkoli podřízený proces, jehož ID skupiny procesů se rovná absolutní hodnotě pid . -1 což znamená čekat na jakýkoli proces dítěte; to je stejné chování, kteréPočkejte exponáty. 0 což znamená čekat na jakýkoli podřízený proces, jehož ID skupiny procesů se rovná hodnotě volajícího procesu. > 0 což znamená čekat na dítě, jehož ID procesu se rovná hodnotě pid . Hodnota možnosti je NE nebo nula nebo více z následujících konstant: WNOHANG což znamená okamžitě se vrátit, pokud žádné dítě nevystoupilo. WUNTRACED což znamená vrátit i děti, které jsou zastaveny a jejichž status nebyl hlášen. (Pro možnosti pouze pro Linux viz níže.) Li postavení neníNULA, Počkejte nebowaitingpid uloží informace o stavu v místě, na které je odkazováno postavení . Tento stav lze vyhodnotit pomocí následujících maker (tyto makra převezmou buffer stavu (anint) jako argument --- ne ukazatel na vyrovnávací paměť!): WIFEXITED ( postavení ) je nenulová, pokud dítě normálně opustilo. WEXITSTATUS ( postavení ) vyhodnocuje nejméně významných osm bitů návratového kódu dítěte, které bylo ukončeno, což může být nastaveno jako argument pro volánívýstup() nebo jako argument pro a vrátit se prohlášení v hlavním programu. Toto makro lze vyhodnotit pouze v případěWIFEXITEDvrácena nenulová hodnota. WIFSIGNALED ( postavení ) vrátí true, jestliže podřízený proces skončil kvůli signálu, který nebyl chycen. WTERMSIG ( postavení ) vrátí číslo signálu, který způsobil ukončení podřízeného procesu. Toto makro lze vyhodnotit pouze v případěWIFSIGNALED vrácena nenulová hodnota. WIFSTOPPED ( postavení ) vrací true, pokud je podřízený proces, který způsobil návrat, ukončen; to je možné pouze v případě, že byl hovor uskutečněnWUNTRACED. WSTOPSIG ( postavení ) vrátí číslo signálu, který způsobil zastavení dítěte. Toto makro lze vyhodnotit pouze v případěWIFSTOPPED vrácena nenulová hodnota. Některé verze systému Unix (například Linux, Solaris, ale ne AIX, SunOS) také definují makroWCOREDUMP ( postavení ) testovat, zda dítě zpracovává dumpingové jádro. Tuto funkci použijte pouze v #ifdef WCOREDUMP … #endif. ID procesu dítěte, které opustilo, nebo nula, pokudWNOHANG byl použit a žádné dítě nebylo k dispozici, nebo -1 na chybu (v tom případě errno je nastavena na příslušnou hodnotu). ECHILD pokud proces uvedený v odstavci pid neexistuje nebo není dítě volajícího procesu. (To se může stát pro vlastní dítě, pokud je akce SIGCHLD nastavena na hodnotu SIG_IGN. Viz také část LINUX NOTES o vláknech.) EINVAL pokud možnosti argument byl neplatný. EINTR -liWNOHANG nebyl nastaven ani odblokovaný signál nebo aSIGCHLD byl chycen. Popis
Návratová hodnota
Chyby




