Manpages

NAAM

wait3, wait4 − wacht voor proces beëindiging, BSD stijl

OVERZICHT

#define _USE_BSD
#include <sys/types.h>
#include <sys/resource.h>
#include <sys/wait.h>

pid_t wait3(int *status, int keuzes,
struct rusage *
rusage)

pid_t wait4(pid_t pid, int *status, int keuzes,
struct rusage *
rusage)

BESCHRIJVING

De wait3 functie schort het uitvoeren van het huidige proces op totdat een kind eindigt, of totdat een signaal wordt afgeleverd welke het beëindigen van het huidige proces, of het aanroepen van een signaalbehandelings functie bewerkstelligd. Als een kind al beëindigd was op het moment van aanroepen (een zogenaamd "zombie" proces), dan keert de functie onmiddellijk terug. Alle systeem-middelen in gebruik door het kind worden vrijgemaakt.

De wait4 functie schort uitvoering van het huidige proces op totdat een kind opgegeven door het pid argument is geëindigd, of totdat een signaal wordt afgeleverd welke het beëindigen van het huidige proces, of het aanroepen van een signaalbehandeling functie bewerkstelligd. Als een kind gevraagd met pid al beëindigd was op het moment van aanroepen (een zogenaamd "zombie" proces), dan keert de functie onmiddellijk terug. Alle systeem middelen in gebruik door het kind worden vrijgemaakt.

De waarde van pid kan zijn een van:

< −1

wat betekend te wachten voor ieder kind proces waarvan het proces groep ID gelijk is aan de absolute waarde van pid.

−1

wat betekend te wachten voor ieder kind proces; deze is gelijk aan het aanroepen van wait3.

0

wat betekend te wachten voor ieder kind proces waarvan het proces groep ID gelijk is aan dat van het aanroepende proces.

> 0

wat betekend te wachten vaar het kind proces waarvan het proces ID gelijk is aan de waarde van pid.

De waarde van keuzes is een bitsgewijze OF (incl.) van nul of meer van de volgende constanten:
WNOHANG

{niet ophangen} wat betekend terug te keren onmiddellijk als geen kind daar is om op te wachten.

WUNTRACED

{niet gevolgd} wat betekend ook terug te keren voor kinderen die gestopt zijn, en waarvan de status niet gemeld was.

Als status niet NULL is, dan bewaren wait3 en wait4 status informatie op de plaats naar verwezen naar door status.

Deze status kan beoordeeld worden met de volgende macro’s (deze macro’s nemen de "stat" buffer (een int) als argument — niet een pointer naar de buffer!):
WIFEXITED(
status)

{als beëindigd} is niet−nul als het kind normaal eindigde.

WEXITSTATUS(status)

{einde status} levert de acht minst belangrijke bits op van de teruggave code van het kind dat eindigde, wat gezet kan zijn als het argument voor een aanroep van exit() of als het argument voor een return opdracht in het "main" programma. Deze macro kan alleen beoordeeld worden als WIFEXITED {als eindigde} niet-nul teruggaf.

WIFSIGNALED(status)

{als gesignaleerd} geeft "waar" {true} als het kind proces eindigde omdat een signaal niet gevangen werd.

WTERMSIG(status)

{einde signaal} geeft het nummer van het signaal dat veroorzaakte dat het kind proces eindigde. Deze macro kan alleen afgewerkt worden als WIFSIGNALED {als gesignaleerd} niet−nul teruggaf.

WIFSTOPPED(status)

{als gestopt} geeft "waar" {true} als het kind proces dat de terugkeer veroorzaakte momenteel gestopt is; dit is alleen mogelijk als de aanroep werd gedaan met WUNTRACED.

WSTOPSIG(status)

{stop signaal} geeft het nummer van het signaal dat veroorzaakte dat het kind stopte. Deze macro kan alleen afgewerkt worden als WIFSTOPPED {als gestopt} niet−nul teruggaf.

Als rusage niet NULL is, dan zal de struct rusage bepaald in <sys/resource.h> gevuld worden met getalsmatige {"accounting"} informatie. Zie getrusage(2) voor details.

TERUGGEEF WAARDE

Het proces ID van het kind dat eindigde, −1 bij een fout (in het bijzonder, wanneer geen niet-op-gewachte kind processen van de opgegeven soort bestaan) of nul als WNOHANG gebruikt werd en geen kind was nog voorhanden. In het laatste twee gevallen zal errno naar behoren worden gezet.

FOUTEN

ECHILD

{kind} Geen niet-op-gewacht kind proces zoals opgegeven bestaan.

ERESTARTSYS

{herstart systeem} als WNOHANG {niet hangen} niet gezet was en een ongeblokkeerd signaal of een SIGCHLD {signaal kind} werd gevangen. Deze fout wordt teruggegeven door de systeem aanroep. De bibliotheek interface heeft geen toestemming om ERESTARTSYS, terug te geven, en zal EINTR{onderbroken} teruggeven.

VOLDOET AAN

SVr4, POSIX.1

ZIE OOK

signal(2) {signaal}, getrusage(2) {krijg gebruik}, wait(2) {wacht}, signal(7) {signaal}

VERTALING

Dit is een handleiding uit manpages-dev 1.29. Alles wat tussen ’{’..’}’ staat is aanvullende vertaling, en hoort niet bij de originele handleiding. Email naar <manpages-nl [AT] nl.org>.

$Id: wait4.2,v 1.1.1.1 2004/03/21 21:02:25 cor Exp $