Provided by: manpages-nl_20051127-1_all bug

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 $