focal (2) getpgrp.2.gz

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/.