Provided by: manpages-pl-dev_0.6-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/.