wait

WAIT(2)                  Linux Programmeurs Handleiding                  WAIT(2)



NAAM
       wait, waitpid - wacht op proces beëindiging

OVERZICHT
       #include <sys/types.h>
       #include <sys/wait.h>

       pid_t wait(int *status)
       pid_t waitpid(pid_t pid, int *status, int opties);

BESCHRIJVING
       De wait systeemaanroep schort het uitvoeren van het huidige proces op
       totdat een kind {kind-proces} eindigt of totdat een signaal wordt
       afgeleverd die er voor zorgt dat: òf het huidige proces wordt beëindigd,
       òf een signaal-behandelaar wordt aangeroepen. Als een kind al eindigde
       (met uitvoeren) op het moment van de aanroep (een zogenaamd `zombie'
       proces) dan keert de aanroep onmiddellijk terug. Alle systeem-middelen in
       gebruik door het kind worden vrijgemaakt.  De waitpid aanroep schort de
       uitvoering van het huidige proces op totdat het kind dat bepaald werd met
       het pid argument is beëindigd, of totdat een signaal wordt afgeleverd dat
       ervoor zorgt dat: het huidige proces wordt beëindigd, of een signaal
       behandelaar wordt aangeroepen.  Als een kind al eindigde (met uitvoeren)
       op het moment van de aanroep (een zogenaamd "zombie" proces) dan keert de
       aanroep onmiddellijk terug. Alle systeem-middelen in gebruik door het
       kind worden vrijgemaakt.

       De waarde van pid kan een van de volgende zijn:

       < -1   wat betekend dat er gewacht wordt op elk kind proces van wie de
              proces groep ID gelijk is aan de absolute waarde van pid.

       -1     wat betekend dat er gewacht wordt op elk kind proces; dit is
              hetzelfde gedrag als wait vertoont.

       0      wat betekend dat er gewacht wordt op elk kind proces van wie het
              proces groep ID gelijk is aan dat van het aanroepende proces.

       > 0    wat betekend dat er gewacht wordt op elk kind van wie het proces
              ID gelijk is aan de waarde van pid.

       De waarde van opties is een OF (incl.) van nul of meer van de volgende
       constanten

       WNOHANG
              {niet hangen} betekend dat er onmiddellijk wordt teruggekeerd als
              geen kind beëindigd was.

       WUNTRACED
              {ongevolgd} betekend dat er ook teruggekeerd wordt voor kinderen
              die zijn gestopt, en van wie de status niet gemeld is.

       Als status niet NULL is, dan slaan wait of waitpid status informatie op,
       op de plaats waar status naar wijst.

       Deze status kan beoordeeld worden met de volgende macro's (deze macro's
       hebben de "stat buffer" (een geheel getal ("int")) als argument — niet
       een pointer naar de buffer!):

       WIFEXITED(status)
              {als beëindigd} is ongelijk-nul als het kind normaal eindigde.

       WEXITSTATUS(status)
              {eind staat} beoordeeld de minst belangrijke acht bits van de
              terugkeer-waarde van het kind dat eindigde, die gezet zouden
              kunnen zijn met het argument van een aanroep naar exit() of als
              het argument voor een return opdracht in het `main' programma.
              Deze macro kan alleen afgehandeld worden als WIFEXITED
              ongelijk-nul teruggaf.

       WIFSIGNALED(status)
              {als sign.} geeft "waar" {ala ja/nee} terug als het proces
              eindigde door een signaal dat niet onderschept werd.

       WTERMSIG(status)
              {eind sign.} geeft het nummer van het signaal dat ervoor zorgde
              dat het kind proces eindigde. Deze macro kan alleen afgehandeld
              worden als WIFSIGNALED ongelijk-nul teruggaf.

       WIFSTOPPED(status)
              {als gestopt} geeft "waar" terug 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 sign.} geeft het nummer van het signaal dat ervoor zorgde
              dat het kind stopte.  Deze macro kan alleen afgehandeld worden als
              WIFSTOPPED ongelijk-nul teruggaf.


EIND WAARDE
       Het proces ID van het kind dat eindigde, -1 bij een fout of nul als
       WNOHANG gebruikt werd en geen kind voorhanden was (in welk geval errno
       naar een passende waarde wordt gezet).


FOUTEN
       ECHILD {kind} als het proces bepaald in pid, niet bestaat of het geen
              kind is van het aanroepende proces.  (Dit kan gebeuren voor je
              eigen kind als de actie voor SIGCHLD gezet is naar SIG_IGN.)

       EINVAL {ongeldig} als het opties argument ongeldig was.

       ERESTARTSYS
              {herstart} als WNOHANG niet gezet is en een niet-geblokkeerd
              signaal of een SIGCHLD gevangen werd. Deze fout wordt teruggegeven
              door de systeemaanroep.  De bibliotheek interfaces mogen
              ERESTARTSYS niet teruggeven, maar zullen EINTR {onderbroken}
              geven.


OPMERKINGEN
       De "Single Unix Specification" beschrijft een vlag SA_NOCLDWAIT (niet
       aanwezig onder Linux) waardoor, als deze vlag is gezet, of de daad voor
       SIGCHLD is gezet naar SIG_IGN (wat trouwens niet toegestaan wordt door
       POSIX), kinderen die exit aanroepen geen zombies worden, en een aanroep
       naar wait() of waitpid() zal blokkeren, totdat alle kinderen geëindigd
       zijn, en dan zal falen met errno naar ECHILD gezet.

VOLDOET AAN
       SVr4, POSIX.1

ZIE
       signal(2) {signaal}, wait4(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@nl.linux.org>.

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



Linux                             23 Juni 1997                           WAIT(2)