Nom
espera, waitpid: espereu la terminació del procés
Sinopsi
#incloure pid_t esperar (int * estat );pid_t waitpid (pid_t pid , int * estat , int opcions );
Elespera la funció suspèn l'execució del procés actual fins que un nen ha sortit o fins que es lliuri un senyal l'acció del qual és finalitzar el procés actual o trucar a una funció de control de senyals. Si un nen ja ha sortit al moment de la trucada (un procés anomenat "zombie"), la funció torna immediatament. S'alliberen tots els recursos del sistema que utilitza el nen. Elwaitpid la funció suspèn l'execució del procés actual fins que un fill s'especifica per la pid S'ha sortit l'argument o fins que es lliura un senyal l'acció del qual és finalitzar el procés actual o trucar a una funció de control de senyals. Si un nen ho sol·licita pid ja ha sortit en el moment de la trucada (un procés anomenat "zombie"), la funció torna immediatament. S'alliberen tots els recursos del sistema que utilitza el nen. El valor de pid pot ser una de: < -1 el que significa esperar a qualsevol procés secundari el ID del grup de procés sigui igual al valor absolut de pid . -1 que significa esperar un procés secundari; aquest és el mateix comportament queespera exposicions. 0 el que significa esperar a qualsevol procés secundari el ID del grup de processos sigui igual al del procés de trucada. > 0 que significa esperar que el nen l'ID del procés sigui igual al valor de pid . El valor de opcions és una OR de zero o més de les següents constants: WNOHANG que vol dir tornar immediatament si cap fill ha sortit. ENTRADA el que significa també retornar als nens que es van aturar, i l'estat del qual no s'ha informat. (Per a opcions només per a Linux, vegeu a continuació.) Si estat no ésNUL, espera owaitpid emmagatzema informació d'estat a la ubicació indicada per estat . Aquest estat es pot avaluar amb les següents macros (aquestes macros prenen el buffer d'estat (anint) com a argument --- no un punter al buffer!): WIFEXITED ( estat ) No és nul si el nen surt normalment. WEXITSTATUS ( estat ) avalua els vuit bits menys significatius del codi de retorn del fill que ha finalitzat, que pot haver estat establert com l'argument a una crida asortir () o com a argument per a tornada declaració en el programa principal. Aquesta macro només es pot avaluar siWIFEXITEDva tornar sense zero. WIFSIGNALED ( estat ) retorna true si el procés fill va sortir a causa d'un senyal que no va ser capturat. WTERMSIG ( estat ) torna el nombre del senyal que va provocar que el procés secundari finalitzi. Aquesta macro només es pot avaluar siWIFSIGNALED va tornar sense zero. WIFSTOPPED ( estat ) retorna true si el procés secundari que va provocar la devolució es deté actualment; això només és possible si la trucada s'ha fet usantENTRADA. WSTOPSIG ( estat ) retorna el nombre del senyal que va provocar que el nen s'aturés. Aquesta macro només es pot avaluar siWIFSTOPPED va tornar sense zero. Algunes versions d'Unix (per exemple, Linux, Solaris, però no AIX, SunOS) també defineixen una macroWCOREDUMP ( estat ) per provar si el procés secundari va abocar el nucli. Utilitzeu aquesta opció només a #ifdef WCOREDUMP … #endif. L'ID del procés del nen que va sortir, o zero siWNOHANG es va utilitzar i no hi havia cap fill disponible, o -1 per error (en aquest cas errno està establert en un valor apropiat). ECHILD si el procés especificat a pid no existeix o no és un nen del procés de trucada. (Això pot passar per un fill propi si l'acció de SIGCHLD està establerta en SIG_IGN. Vegeu també la secció NOTES DE LINUX sobre els subprocessos). EINVAL si el opcions L'argument no era vàlid. EINTR siWNOHANG no s'ha configurat i s'ha desbloquejat un senyal o aSIGCHLD va ser capturat. Descripció
Valor retornat
Errors













