Nosaukums
pagaidiet, waitpid - gaidiet procesa izbeigšanu
Kopsavilkums
#include pid_t gaidīt (int * statuss );pid_t waitpid (pid_t pid , int * statuss , int iespējas );
Thepagaidiet funkcija aptur pašreizējā procesa izpildi, kamēr bērns ir iziets, vai līdz tiek piegādāts signāls, kura darbība ir pārtraukt pašreizējo procesu vai izsaukt signālu apstrādes funkciju. Ja bērns jau ir izgājis līdz zvana brīdim (tā saucamais "zombiju" process), funkcija atgriežas uzreiz. Jebkādi sistēmas resursi, kurus izmanto bērns, ir atbrīvoti. Thewaitpid funkcija aptur pašreizējā procesa izpildi līdz bērnam, kā noteikts pid arguments ir izslēgts vai līdz tiek nosūtīts signāls, kura darbība ir pārtraukt pašreizējo procesu vai izsaukt signālu apstrādes funkciju. Ja bērns to lūdz pid jau ir iziet no zvana laika (tā saucamais "zombiju" process), funkcija atgriežas nekavējoties. Jebkādi sistēmas resursi, kurus izmanto bērns, ir atbrīvoti. Vērtība pid var būt viens no: < -1 kas nozīmē gaidīt jebkuru bērnu procesu, kura procesa grupas ID ir vienāds ar pid . -1 kas nozīmē gaidīt jebkuru bērnu procesu; šī ir tā pati uzvedība, kaspagaidiet eksponāti. 0 kas nozīmē, ka jāgaida kāds bērna process, kura procesa grupas ID ir vienāds ar izsaucēja procesa darbību. > 0 kas nozīmē gaidīt bērnu, kura procesa ID ir vienāds ar pid . Vērtība iespējas ir OR ar nulli vai vairāk no šādām konstantēm: WNOHANG kas nozīmē atgriezties uzreiz, ja neviens bērns nav iziets. WUNTRACED kas nozīmē arī atgriezties bērniem, kuri apstājas, un par kuru statusu nav ziņots. (Par Linux tikai opcijām skatiet tālāk.) Ja statuss navNULL, pagaidiet vaiwaitpid veikala statusa informāciju atrašanās vietā, uz kuru norāda statuss . Šo statusu var novērtēt ar sekojošiem makro (šie makro ņem stat buferi (anint) kā arguments --- nav rādītājs uz buferi!): WIFEXITED ( statuss ) ir nulle, ja bērns parasti izietu. WEXITSTATUS ( statuss ) novērtē vismaz tādus astoņus atkārtotā bērna atgriešanās koda astoņus bitus, kuri, iespējams, ir noteikti kā arguments sarunaiIzeja() vai kā arguments par atgriešanās paziņojums galvenajā programmā. Šo makro var novērtēt tikai tad, jaWIFEXITEDatgriezās nullei. WIFSIGNALED ( statuss ) atgriež patiess, ja bērna process iziet signāla dēļ, kas nav nozvejots. WTERMSIG ( statuss ) atgriež signāla numuru, kas izraisīja bērna procesa izbeigšanos. Šo makro var novērtēt tikai tad, jaWIFSIGNALĒTAIS atgriezās nullei. WIFSTOPPED ( statuss ) atgriež patiess, ja bērna process, kas izraisīja atgriešanos, pašlaik tiek apturēts; tas ir iespējams tikai tad, ja zvans tika veikts, izmantojotWUNTRACED. WSTOPSIG ( statuss ) atgriež signāla numuru, kas izraisīja bērna apstāšanos. Šo makro var novērtēt tikai tad, jaWIFSTOPPED atgriezās nullei. Dažas Unix versijas (piemēram, Linux, Solaris, bet ne AIX, SunOS) arī definē makroWCOREDUMP ( statuss ) lai pārbaudītu, vai bērns apstrādā izmešu kodolu. Izmantojiet tikai to, kas iekļauts #ifdef WCOREDUMP … #endif. Izietā bērna procesa ID vai nulle, jaWNOHANG tika izmantots, un neviens bērns nebija pieejams, vai -1 pēc kļūdas (šādā gadījumā errno ir iestatīta uz atbilstošu vērtību). ECHILD ja process, kas norādīts pid nepastāv vai nav izsaukšanas procesa bērns. (Tas var notikt ar savu bērnu, ja SIGCHLD darbība ir iestatīta uz SIG_IGN. Skatiet arī sadaļu LINUX NOTES par tēmām.) EINVAL ja iespējas arguments nav derīgs. EINTR jaWNOHANG netika iestatīts un atbloķēts signāls vai aSIGCHLD tika nozvejotas. Apraksts
Atgriešanās vērtība
Kļūdas













