prénom
wait, waitpid - attend la fin du processus
Synopsis
#comprendre pid_t wait (int * statut );pid_t waitpid (pid_t pid , int * statut , int options );
leattendre function suspend l'exécution du processus en cours jusqu'à la sortie d'un enfant ou jusqu'à la livraison d'un signal dont l'action est de mettre fin au processus en cours ou d'appeler une fonction de traitement de signal. Si un enfant est déjà sorti au moment de l'appel (processus dit "zombie"), la fonction retourne immédiatement. Toutes les ressources système utilisées par l'enfant sont libérées. lewaitpid fonction suspend l'exécution du processus en cours jusqu'à ce qu'un enfant tel que spécifié par le pid l'argument est sorti ou jusqu'à ce qu'un signal soit délivré, dont l'action est de mettre fin au processus en cours ou d'appeler une fonction de traitement du signal. Si un enfant à la demande de pid a déjà quitté au moment de l'appel (processus dit "zombie"), la fonction retourne immédiatement. Toutes les ressources système utilisées par l'enfant sont libérées. La valeur de pid peut être l'un des: < -1 ce qui signifie attendre tout processus enfant dont l'ID de groupe de processus est égal à la valeur absolue de pid . -1 ce qui signifie attendre tout processus enfant; c'est le même comportement quiattendre expositions. 0 ce qui signifie attendre tout processus enfant dont l'ID de groupe de processus est égal à celui du processus appelant. > 0 ce qui signifie attendre l'enfant dont l'ID de processus est égal à la valeur de pid . La valeur de options est un OU de zéro ou plus des constantes suivantes: WNOHANG ce qui signifie revenir immédiatement si aucun enfant n'est sorti. WUNTRACED ce qui signifie également revenir pour les enfants qui sont arrêtés et dont le statut n'a pas été signalé. (Pour les options exclusivement Linux, voir ci-dessous.) Si statut n'est pasNUL, attendre ouwaitpid stocker les informations d'état dans l'emplacement indiqué par statut . Cet état peut être évalué avec les macros suivantes (ces macros utilisent le tampon de statistiques (unint) en tant qu'argument - pas un pointeur sur le tampon!): WIFEXITED ( statut ) est non nul si l'enfant est sorti normalement. WEXITSTATUS ( statut ) évalue les huit bits les moins significatifs du code de retour de l'enfant qui s'est terminé, qui peut avoir été défini comme argument d'un appel àsortie() ou comme argument pour un revenir déclaration dans le programme principal. Cette macro ne peut être évaluée que siWIFEXITEDretourné non nul. WIFSIGNALED ( statut ) renvoie true si le processus enfant s'est arrêté à cause d'un signal qui n'a pas été capturé. WTERMSIG ( statut ) renvoie le numéro du signal qui a provoqué l'arrêt du processus enfant. Cette macro ne peut être évaluée que siWIFSIGNALED retourné non nul. WIFSTOPPED ( statut ) renvoie vrai si le processus enfant qui a provoqué le retour est actuellement arrêté; cela n'est possible que si l'appel a été effectué à l'aide deWUNTRACED. WSTOPSIG ( statut ) renvoie le numéro du signal qui a provoqué l'arrêt de l'enfant. Cette macro ne peut être évaluée que siWIFSTOPPED retourné non nul. Certaines versions d’Unix (Linux, Solaris, mais pas AIX, SunOS) définissent également une macroWCOREDUMP ( statut ) pour vérifier si le processus enfant a été vidé. Utilisez-le uniquement dans #ifdef WCOREDUMP … #endif. L'ID de processus de l'enfant qui a quitté ou zéro siWNOHANG a été utilisé et aucun enfant n'était disponible, ou -1 en cas d'erreur (auquel cas errno est réglé sur une valeur appropriée). ECHILD si le processus spécifié dans pid n'existe pas ou n'est pas un enfant du processus d'appel. (Cela peut arriver pour son propre enfant si l'action pour SIGCHLD est définie sur SIG_IGN. Voir aussi la section LINUX NOTES sur les threads.) EINVAL si la options l'argument était invalide. EINTR siWNOHANG n'a pas été réglé et un signal non bloqué ou unSIGCHLD a été attrapé. La description
Valeur de retour
les erreurs