Provided by: manpages-de-dev_0.5-4.1ubuntu1_all bug

BEZEICHNUNG

       wait3, wait4 - wartet auf die Beendigung eines Prozesses, BSD style

ÜBERSICHT

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

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

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

BESCHREIBUNG

       Die  Funktion  wait3 unterbricht Ausführung des aktuellen Prozesses bis
       sich ein Kind-Prozess  beendet,  oder  ein  Signal  eintrifft,  um  den
       aktuellen  Prozess zu beenden.  Wenn ein Kind-Prozess schon beendet ist
       (ein so genannter Zombie), wird  die  Funktion  sofort  beendet.   Alle
       Systemressourcen des Kind-Prozesses werden freigegeben.

       Die  Funktion  wait4 unterbricht die Ausführung des aktuellen Prozesses
       bis sich der Kind-Prozess mit der Prozessnummer pid beendet,  oder  ein
       Signal  eintrifft, um den aktuellen Prozess zu beenden.  Wenn der Kind-
       Prozess mit der Prozessnummer pid schon beendet ist (ein  so  genannter
       Zombie),  wird  die Funktion sofort beendet.  Alle Systemressourcen des
       Kind-Prozesses werden freigegeben.

       Der Wert von pid kann einer der Folgenden sein:

       < -1   hierbei   wird   auf   ein   beliebiges   Kind   gewartet    des
              Prozessgruppennummer  gleich ist mit dem absoluten Wert von pid.

       -1     hierbei wird auf irgendein Kind gewartet: dies ist identisch mit
              dem Aufruf von wait3.

       0      hierbei    wird    auf    irgendein    Kind    gewartet   dessen
              Prozessgruppennummer gleich ist mit der des Vaters.

       > 0    hierbei wird auf das Kind gewartet dessen  Prozessnummer  gleich
              ist mit dem Wert von pid.

       Der  Wert von options ist das ERgebnis eines exclusiven ODER von keinem
       oder mehreren der folgenden Konstanten:

       WNOHANG
              hierbei wird sofort zurückgekehrt wenn auf  kein  Kind  gewartet
              werden muss.

       WUNTRACED
              hierbei  wird auch zurückgekehrt wenn auf Kinder gewartet werden
              soll die gestoppt sind und deren Status noch nicht zurückgegeben
              wurde.

       Wenn   status   nicht   NULL,   ist   speichern   wait3  or  wait4  die
       Stausinformation in der Variablen statloc.

       Der Status kann mit folgenden Makros ermittelt werden:

       WIFEXITED(*status)
              ist nicht Null wenn das Kind normal beendet wurde.

       WEXITSTATUS(*status)
              wertet die letzten acht Bits des Rückgabewertes des Kindes  aus,
              die  als  Argument  der Funktion exit gesetzt, oder als Argument
              eines return  Statements  des  main  Programms  gesetzt  wurden.
              Dieses  Makro  kann nur benutzt werden wenn WIFEXITED einen Wert
              ungleich Null liefert.

       WIFSIGNALED(*status)
              liefert  wahr  zurück,  wenn  das  Kind  aufgrund  eines   nicht
              abgefangenen Signals beendet wurde.

       WTERMSIG(*status)
              liefert  die  Signalnummer  des  Signals  das des Kind beendete.
              Dieses Makro kann nur benutzt werden wenn WIFSIGNALED einen Wert
              ungleich Null liefert.

       WIFSTOPPED(*status)
              liefert  wahr zurück, wenn das Kind, das den Return auslöste, im
              Moment gestoppt ist.  Dies ist nur  der  Fall  wenn  der  Aufruf
              während eines WUNTRACED erfolgte.

       WSTOPSIG(*status)
              liefert  die  Signalnummer  des  Signals  das  das Kind stoppte.
              Dieses Makro kann nur benutzt werden wenn WIFSTOPPED einen  Wert
              ungleich Null liefert.

              Wenn  rusage  nicht  NULL,  ist  wird  struct  rusage  ,  wie in
              <sys/resource.h> definiert, mit Accountinginformationen gefüllt.
              Siehe dazu getrusage(2).

RÜCKGABEWERT

       Die  Prozessnummer  des  Kindes  welches  sich  beendet, oder bei einem
       Fehler -1, oder Null wenn WNOHANG benutzt  wurde  und  kein  Kind  mehr
       existierte.   In  diesem  Fall wird errno auf einen entsprechenden Wert
       gesetzt.

ERRORS

       ECHILD Wenn der Kindprozess mit der pid nicht existiert.

       EPERM  Wenn  die  effektive  Userid  des  aufrufenden  Prozesses  nicht
              übereinstimmt  mit  dem Prozess auf den gewartet werden soll und
              die effektive Userid des aufrufenden  Prozesses  nicht  die  des
              Superusers ist.

       ERESTARTSYS
              Wenn  WNOHANG  nicht  gesetzt  wurde und ein nicht blockierendes
              Signal oder ein  SIGCHLD  zurückgegeben  wurde;  dies  ist  eine
              Erweiterung des POSIX.1 Standards.

KONFORM ZU

       POSIX.1

SIEHE AUCH

       signal(2), getrusage(2), wait(2), signal(7).