Provided by: manpages-pl-dev_0.7-2_all bug

NAZWA

       setpgid, getpgid, setpgrp, getpgrp - pobranie/ustawienie grupy procesów

SKŁADNIA

       #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

        Uwaga! To tłumaczenie może być nieaktualne!

       setpgid  ustawia dla procesu określonego przez pid numer ID grupy procesów na pgid.  Jśli pid jest zerem,
       to używany jest numer ID bieżącego procesu. Jeśli pgid jest zerem, to używany jest numer ID  procesu  dla
       procesu  określonego  przez  pid.   Jeśli  setpgid  jest  używane do przeniesienia procesu z jednej grupy
       procesów do innej (jak to robią niektóre powłoki podczas tworzenia potoków), to obie grupy procesów muszą
       należeć do tej samej sesji. W tym przypadku pgid określa istniejącą grupę procesów,  do  której  zostanie
       przyłączony  proces  i  numer  sesji  dla  tej grupy musi być taki sam, jak numer sesji dla przyłączanego
       procesu.

       getpgid zwraca numer ID grupy procesów dla procesu określonego przez  pid.   Jeśli  pid  jest  zerem,  to
       używany jest numer ID bieżącego procesu.

       Wywołanie setpgrp() jest równoważne setpgid(0,0).

       Podobnie  getpgrp()  jest  równoważne  getpgid(0).   Każda  grupa procesów należy do pewnej sesji i każdy
       proces należy do sesji, do której należy jego grupa procesów.

       Grupy procesów używane są  do  rozprowadzania  sygnałów  oraz  do  rozstrzygania  przez  terminale  żądań
       dotyczących  danych  wejściowych:  procesy,  które  należą  do  tej  samej grupy procesów, co terminal są
       pierwszoplanowe i mogą czytać, podczas gdy pozostałe procesy są blokowane sygnałem, jeśli próbują czytać.
       Te funkcje są więc używane przez programy takie, jak csh(1) do tworzenia grup  procesów  w  implementacji
       sterowania  zadaniami.  Funkcje TIOCGPGRP i TIOCSPGRP opisane w termios(3) służą do pobierania/ustawiania
       grupy procesów dla terminala sterującego.

       Jeśli sesja posiada terminal sterujący, nie jest ustawione CLOCAL i wystąpi zawieszenie,  to  do  procesu
       przewodzącego  sesji  wysyłany  zostanie  SIGHUP.  Jeśli proces przewodzący sesji zakończy się, to sygnał
       SIGHUP zostanie wysłany to wszystkich procesów pierwszoplanowych należących do grupy  procesów  terminala
       sterującego.

       Jeśli  zakończenie  procesu  spowoduje,  że  grupa  procesów  stanie  się osierocona, a wszystkie procesy
       nowoosieroconej grupy będą zatrzymane, to do każdego z nich zostanie wysłany  sygnał  SIGHUP,  po  którym
       nastąpi wysłanie sygnału SIGCONT.

WARTOŚĆ ZWRACANA

       Po  pomyślnym  zakończeniu  setpgid  i  setpgrp  zwracają  zero.  W  przypadku  błędu  zwracane jest -1 i
       odpowiednio ustawiane errno.

       getpgid po pomyślnym zakończeniu zwraca grupę procesów.  W przypadku błędu zwracane jest -1 i odpowiednio
       ustawiane errno.

       getpgrp Zawsze zwraca aktualną grupę procesów.

BŁĘDY

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

       EACCES Nastąpiła próba zmiany identyfikatora grupy procesów dla  jednego  z  procesów  potomnych  procesu
              wywołującego funkcję, zaś ów proces potomny wykonał już execve (setpgid, setpgrp).

       EPERM  Nastąpiła próba przeniesienia procesu do grupy procesów należącej do innej sesji, lub próba zmiany
              identyfikatora  grupy  procesów dla jednego z procesów potomnych procesu wywołującego funkcję, zaś
              ów proces potomny należy do innej sesji,  lub  próba  zmiany  identyfikatora  grupy  procesów  dla
              przywódcy sesji (setpgid, setpgrp).

       ESRCH  Dla  getpgid:  nie ma procesu o numerze pid.  Dla setpgid: pid nie jest ani bieżącym procesem, ani
              potomkiem bieżącego 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 oparł funkcję setpgid na funkcji BSD setpgrp.  SysV również  posiada  funkcję  o  tej  nazwie,  ale
       funkcja ta jest tożsama z setsid(2).

       Aby   uzyskać  prototypy  tych  funkcji  pod  glibc  należy  zdefiniować  zarówno  _XOPEN_SOURCE,  jak  i
       _XOPEN_SOURCE_EXTENDED, lub użyć "#define _XOPEN_SOURCE n", gdzie n jest pewną liczbą  całkowitą  większą
       lub równą 500.

ZOBACZ TAKŻE

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

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne.
       W  razie  zauważenia  różnic  między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub
       funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 2 setpgid

       Prosimy  o  pomoc  w  aktualizacji  stron  man  -   więcej   informacji   można   znaleźć   pod   adresem
       http://sourceforge.net/projects/manpages-pl/.

Linux                                              2003-01-20                                         SETPGID(2)