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

NAZWA

       setpgid, getpgid, setpgrp, getpgrp - pobranie/ustawienie grupy procesow

SK/LADNIA

       #include <unistd.h>

       int setpgid(pid_t pid, pid_t pgid);
       pid_t getpgid(pid_t pid);
       int setpgrp(void);
       pid_t getpgrp(void);

OPIS

       setpgid  ustawia  dla  procesu  okrelonego  przez  pid  numer  ID grupy
       procesow na pgid.  Jli pid jest zerem, to uywany jest numer ID  biecego
       procesu.  Jeli  pgid  jest  zerem,  to uywany jest numer ID procesu dla
       procesu  okrelonego  przez  pid.    Jeli   setpgid   jest   uywane   do
       przeniesienia  procesu  z  jednej  grupy procesow do innej (jak to robi
       niektore powloki podczas tworzenia potokow),  to  obie  grupy  procesow
       musz  nalee  do  tej  samej sesji. W tym przypadku pgid okrela istniejc
       grup procesow, do ktorej zostanie przylczony proces i numer  sesji  dla
       tej grupy musi by taki sam, jak numer sesji dla przylczanego procesu.

       getpgid  zwraca  numer  ID  grupy procesow dla procesu okrelonego przez
       pid.  Jeli pid jest zerem, to uywany jest numer ID biecego procesu.

       Wywolanie setpgrp() jest rownowane setpgid(0,0).

       Podobnie getpgrp() jest  rownowane  getpgid(0).   Kada  grupa  procesow
       naley  do  pewnej  sesji  i kady proces naley do sesji, do ktorej naley
       jego grupa procesow.

       Grupy  procesow  uywane  s   do   rozprowadzania   sygnalow   oraz   do
       rozstrzygania przez terminale da dotyczcych danych wejciowych: procesy,
       ktore nale do tej samej grupy procesow, co terminal s pierwszoplanowe i
       mog  czyta,  podczas  gdy  pozostale procesy s blokowane sygnalem, jeli
       probuj czyta.  Te funkcje s wic uywane przez programy takie, jak csh(1)
       do  tworzenia  grup  procesow  w  implementacji  sterowania  zadaniami.
       Funkcje  TIOCGPGRP  i   TIOCSPGRP   opisane   w   termios(3)   slu   do
       pobierania/ustawiania grupy procesow dla terminala sterujcego.

       Jeli  sesja  posiada  terminal  sterujcy,  nie  jest ustawione CLOCAL i
       wystpi zawieszenie, to do procesu przewodzcego sesji wysylany  zostanie
       SIGHUP.  Jeli  proces  przewodzcy  sesji  zakoczy  si, to sygnal SIGHUP
       zostanie wyslany to wszystkich procesow pierwszoplanowych  nalecych  do
       grupy procesow terminala sterujcego.

       Jeli   zakoczenie   procesu  spowoduje,  e  grupa  procesow  stanie  si
       osierocona, a wszystkie procesy nowoosieroconej grupy bd zatrzymane, to
       do  kadego  z  nich  zostanie  wyslany  sygnal SIGHUP, po ktorym nastpi
       wyslanie sygnalu SIGCONT.

WARTO ZWRACANA

       Po pomylnym zakoczeniu setpgid i setpgrp zwracaj zero. W przypadku bldu
       zwracane jest -1 i odpowiednio ustawiane errno.

       getpgid  po pomylnym zakoczeniu zwraca grup procesow.  W przypadku bldu
       zwracane jest -1 i odpowiednio ustawiane errno.

       getpgrp Zawsze zwraca aktualn grup procesow.

B/LDY

       EINVAL pgid jest mniejsze ni 0 (setpgid, setpgrp).

       EACCES Nastpila proba zmiany identyfikatora grupy procesow dla  jednego
              z  procesow  potomnych  procesu wywolujcego funkcj, za ow proces
              potomny wykonal ju execve (setpgid, setpgrp).

       EPERM  Nastpila proba przeniesienia procesu do grupy  procesow  nalecej
              do  innej  sesji, lub proba zmiany identyfikatora grupy procesow
              dla jednego z procesow potomnych procesu wywolujcego funkcj,  za
              ow  proces  potomny  naley  do  innej  sesji,  lub  proba zmiany
              identyfikatora grupy  procesow  dla  przywodcy  sesji  (setpgid,
              setpgrp).

       ESRCH  Dla getpgid: nie ma procesu o numerze pid.  Dla setpgid: pid nie
              jest ani biecym procesem, ani potomkiem biecego procesu.

ZGODNE Z

       Funkcje setpgid i getpgrp s zgodne z POSIX.1.  Funkcja setpgrp pochodzi
       z BSD 4.2.  Funkcja getpgid jest zgodna z SVr4.

UWAGI

       POSIX oparl funkcj setpgid na funkcji BSD setpgrp.  SysV rownie posiada
       funkcj o tej nazwie, ale funkcja ta jest tosama z setsid(2).

       Aby uzyska prototypy tych funkcji pod glibc  naley  zdefiniowa  zarowno
       _XOPEN_SOURCE,   jak   i   _XOPEN_SOURCE_EXTENDED,   lub   uy  "#define
       _XOPEN_SOURCE n", gdzie n jest pewn liczb calkowit wiksz lub rown 500.

ZOBACZ TAKE

       getuid(2), setsid(2), tcgetpgrp(3), tcsetpgrp(3), termios(3)

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.