Provided by:
manpages-pl-dev_20060617-3_all 
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.