Provided by: manpages-pl-dev_20060617-3_all bug

NAZWA

       wait3, wait4 - oczekiwanie na zakoczenie procesu (styl BSD)

SK/LADNIA

       #include <sys/types.h>
       #include <sys/time.h>
       #include <sys/resource.h>
       #include <sys/wait.h>

       pid_t wait3(int *status, int opcje,
             struct rusage *ruzycie);

       pid_t wait4(pid_t pid, int *status, int opcje,
             struct rusage *ruzycie);

OPIS

       Funkcja  wait3  zawiesza wykonywanie biecego procesu a jego potomek nie
       zakoczy dzialania, lub a nie zostanie dostarczony sygnal, ktorego  akcj
       jest  zakoczenie biecego procesu lub wywolanie funkcji obslugi sygnalu.
       Jeli potomek zakoczyl dzialanie  przed  wywolaniem  tej  funkcji  (tzw.
       "zombie"  -  proces  duch), zakoczy ona dzialanie natychmiast. Wszelkie
       zasoby systemowe uywane przez potomka s zwalniane.

       Funkcja wait4 zawiesza wykonywanie biecego procesu a potomek,  okrelony
       przez   argument   pid  nie  zakoczy  dzialania,  lub  a  nie  zostanie
       dostarczony sygnal, ktorego akcj jest zakoczenie  biecego  procesu  lub
       wywolanie  funkcji  obslugi sygnalu. Jeli potomek okrelony przez pid ju
       zakoczyl dzialanie (proces duch), funkcja koczy dzialanie  natychmiast.
       Wszelkie zasoby systemowe uywane przez potomka s zwalniane.

       Warto pid moe by jednym z:

       < -1   oznacza  oczekiwanie na dowolnego potomka, ktorego identyfikator
              grupy procesow jest rowny modulowi wartoci pid.

       -1     co oznacza  oczekiwanie  na  dowolny  proces  potomny;  jest  to
              rownowane wywolaniu wait3.

       0      oznacza  oczekiwanie na dowolnego potomka, ktorego identyfikator
              grupy procesow jest rowny identyfikatorowi procesu wolajcego.

       > 0    oznacza oczekiwanie na potomka, ktorego PID jest  rowny  wartoci
              pid.

       Warto argumentu opcje jest bitowym OR zera lub wicej sporod nastpujcych
       stalych:

       WNOHANG
              oznacza zwrocenie wartoci  natychmiast  w  wypadku  gdy  nie  ma
              potomka, na ktorego mona by czeka.

       WUNTRACED
              oznacza  rownie nieobslugiwanie zatrzymanych potomkow oraz tych,
              ktorych status nie zostal zgloszony.

       Jeli  status  nie  wynosi  NULL,  wait3  i  wait4  zapisuj  w   miejscu
       wskazywanym przez status informacje o stanie.

       Stan  ten  moe by okrelony za pomoc nastpujcych makr (pobierajcych jako
       argument bufor stanu (warto int), --  nie wskanik do tego bufora:

       WIFEXITED(status)
              jest niezerowe, gdy potomek zakoczyl prac normalnie.

       WEXITSTATUS(status)
              wyraa ostatnich osiem znaczcych bitow kodu  powrotu  zakoczonego
              potomka  (ktory mogl by ustawiony jako argument funkcji exit lub
              jako argument instrukcji return w programie  glownym.  Makro  to
              moe   by   przetwarzane  tylko  jeli  WIFEXITED  zwrocilo  warto
              niezerow.

       WIFSIGNALED(status)
              zwraca  prawd,  jeli  potomek  zakoczyl   dzialanie   z   powodu
              nieprzechwyconego sygnalu.

       WTERMSIG(status)
              zwraca   numer  sygnalu,  ktory  spowodowal  zakoczenie  procesu
              potomnego.  Makro to moe by wyliczane tylko po  zwroceniu  przez
              WIFSIGNALED wartoci niezerowej.

       WIFSTOPPED(status)
              zwraca  prawd, jeli proces potomny, ktory spowodowal wyjcie jest
              obecnie zatrzymany. Jest to moliwe tylko jeli wywolanie wykonano
              z uyciem WUNTRACED.

       WSTOPSIG(status)
              zwraca  numer  sygnalu,  ktory  spowodowal  zatrzymanie potomka.
              Makro to moe by wyliczane tylko po  zwroceniu  przez  WIFSTOPPED
              wartoci niezerowej.

       Jeli  ruzycie  nie  jest  rowne  NULL,  zdefiniowana w <sys/resource.h>
       struktura struct rusage, na ktor ruzycie wskazuje, zostanie  wypelniona
       informacjami   o  wykorzystywaniu  zasobow.   Szczegoly  znajduj  si  w
       getrusage(2).

WARTO ZWRACANA

       Identyfikator  zakoczonego  procesu  lub  -1  w   przypadku   bldu   (w
       szczegolnoci,  gdy  nie  istnieje  proces  potomny zadanego rodzaju, na
       ktory mona by oczekiwa), lub zero jeli uyto WNOHANG i nie  byl  dostpny
       aden  potomek.  W  ostatnich  dwoch  przypadkach  zostanie  odpowiednio
       ustawione errno.

B/LDY

       ECHILD Nie istnieje aden odpowiedni proces potomny, na  ktory  mona  by
              oczekiwa.

       EINTR  Jeli  nie ustawiono WNOHANG a zostal przechwycony niezablokowany
              sygnal lub SIGCHLD.

       UWAGI  Dolczenie <sys/time.h> nie jest obecnie wymagane,  lecz  zwiksza
              przenono.    (Faktycznie,   <sys/resource.h>   zawiera   definje
              struktury rusage z polami typu struct timeval  zdefiniowanego  w
              <sys/time.h>.)

       Prototyp  dla  tych  funkcji  jest  dostpny  jedynie,  gdy zdefiniowano
       _BSD_SOURCE (jawnie  lub  porednio,  nie  definiujc  _POSIX_SOURCE  lub
       kompilujc z opcj -ansi).

ZGODNE Z

       SVr4, POSIX.1

ZOBACZ TAKE

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

INFORMACJE O T/LUMACZENIU

       Powysze  tlumaczenie  pochodzi z nieistniejcego ju Projektu Tlumaczenia
       Manuali i moe nie by aktualne. W razie zauwaenia ronic  midzy  powyszym
       opisem  a  rzeczywistym  zachowaniem  opisywanego programu lub funkcji,
       prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.