Exemple de waitpid () en cours d'utilisation?
Je sais que waitpid()
est utilisé pour faire attendre un processus à la fin, mais comment pourrait-on l'utiliser exactement?
Ici ce que je veux faire, c'est créer deux enfants et d'attendre pour le premier enfant à la fin, puis tuer le deuxième enfant avant de quitter.
//Create two children
pid_t child1;
pid_t child2;
child1 = fork();
//wait for child1 to finish, then kill child2
waitpid() ... child1 {
kill(child2) }
source d'informationauteur user3063864
Vous devez vous connecter pour publier un commentaire.
Syntaxe de
waitpid()
:La valeur de
pid
peut être:pid
.pid
.La valeur des options est un OU de zéro, un ou plusieurs des constantes suivantes:
WNOHANG
: Retourner immédiatement si aucun enfant n'a pas quitté.WUNTRACED
: Aussi de retour si un enfant s'est arrêté. Statut pour le tracé des enfants qui ont arrêté est fourni, même si cette option n'est pas spécifiée.WCONTINUED
: Aussi de retour si un arrêté de l'enfant a été repris par la livraison deSIGCONT
.Pour plus d'aide, utilisez
man waitpid
.La syntaxe est
1.où pid est le processus de l'enfant, elle doit attendre.
2.statusPtr est un pointeur vers l'emplacement où les données d'état de la terminaison du processus doit être stocké.
3.spécifie facultatif d'actions pour la fonction waitpid. L'une des indicateurs d'option suivants peuvent être spécifiés, ou ils peuvent être combinés avec une inclusif bit à bit OU de l'exploitant:
WNOHANG
WUNTRACED
WCONTINUED
En cas de succès, waitpid retourne l'ID de processus de l'arrêt de processus dont le statut a été signalé. En cas d'échec, la valeur -1 est renvoyée.
benifits plus attendre
1.Waitpid peut être utilisé lorsque vous avez plus d'un enfant pour le processus et vous voulez attendre pour enfant pour obtenir son exécution fait avant de parent reprend
2.waitpid prend en charge le contrôle du travail
3.il prend en charge non blocage du processus parent