SETPGID(2)

NAME
setpgid, getpgid, setpgrp, getpgrp - setze/hole Prozeßgruppe

ÜBERSICHT
#include <unistd.h>

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

BESCHREIBUNG
setpgid setzt die Prozeßgruppenkennung (Process Group ID) des durch pid angegebenen Prozesses auf pgid. Wenn pid Null ist wird die aktuelle Prozeßkennung benutzt. Wenn pgid Null ist wird die Prozeßkennung des durch pid angegebenen Prozesses benutzt. getpgid gibt die Prozeßgruppenkennung des Prozesses zurück, der durch pid angegeben ist. Wenn pid Null ist wird die Prozeßkennung des des aktuellen Prozesses benutzt. In der Bibliothek Linux DLL 4.4.1 ruft setpgrp einfach setpgid(0,0) auf. getpgrp ist äquivalent zu getpgid(0). Prozeßgruppen werden benutzt zur Verbreitung von Signalen und von Terminals zum Verteilen von Eingabeanforderungen: Prozesses, die die gleiche Prozeßgruppe haben wie das Terminal, sind im Vordergrund und dürfen lesen, während andere mit einem Signal blockiert sind, wenn sie versuchen zu lesen. Diese Aufrufe sind werden also benutzt von Programmen wie csh(1), um Prozeßgruppen zu erzeugen, um Job-Kontrolle zu realisieren. Die Aufrufe TIOCGPGRP und TIOCSPGRP, die in termios(4) beschrieben sind, werden benutzt, um die Prozeßgruppe des kontrollierenden Terminals zu lesen/zu setzen.

RÜCKGABEWERT
Bei Erfolg geben setpgid and setpgrp Null zurück. Im Fehlerfall wird -1 zurückgegeben und errno entsprechend gesetzt. getpgid gibt bei Erfolg eine Prozeßgruppe zurück. Im Fehlerfall wird -1 zurückgegeben und errno entsprechend gesetzt. getpgrp gibt immer die aktuelle Prozeßgruppe zurück.

FEHLER

EINVAL
    pgid ist kleiner als 0.

EPERM
    Verschiedene Zugriffsrechteprobleme.

ESRCH
    pid entspricht keinem Prozeß.

SIEHE AUCH
getuid(2), setsid(2), tcsetpgrp(3), termios(4).