Provided by: manpages-nl-dev_4.15.0-9_all bug

NAAM

       setpgid, getpgid, setpgrp, getpgrp - zet/krijg proces groep

SAMENVATTING

       #include <unistd.h>

       int setpgid(pid_t pid, pid_t pgid);
       pid_t getpgid(pid_t pid);

       pid_t getpgrp(void);                 /* POSIX.1 versie */
       pid_t getpgrp(pid_t pid);            /* BSD versie */

       int setpgrp(void);                   /* System V versie */
       int setpgrp(pid_t pid, pid_t pgid);  /* BSD versie */

   Feature Test Macro´s eisen in  glibc (zie feature_test_macros(7)):

       getpgid():
           _XOPEN_SOURCE >= 500
               || /* Vanaf glibc 2.12: */ _POSIX_C_SOURCE >= 200809L

       setpgrp() (POSIX.1):
           _XOPEN_SOURCE >= 500
               || /* Vanaf glibc 2.19: */ _DEFAULT_SOURCE
               || /* Glibc <= 2.19: */ _SVID_SOURCE

       setpgrp() (BSD), getpgrp() (BSD):
           [Deze zijn alleen beschikbaar voor glibc 2.19]
           _BSD_SOURCE &&
               ! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE
                   || _GNU_SOURCE || _SVID_SOURCE)

BESCHRIJVING

       Al  deze  interfaces  zijn beschikbaar op Linux, en worden gebruikt voor het verkrijgen en
       zetten  van  de  proces  groep  ID  (PGID)  van  een   proces.   De   voorkeur   manieren,
       POSIX.1-gespecificeerde,  om  dit te doen zijn: getpgrp(void), om het PGID van het huidige
       proces te verkrijgen en setpgid(), voor het zetten van het PGID van het proces.

       setpgid() zet het PGID van het proces opgegeven in pid naar pgid. Als pid nul is wordt het
       proces  ID  van  het  huidige proces gebruikt. Als pgid nul is wordt het proces ID van het
       proces opgegeven in pid gebruikt. Als setpgid gebruikt wordt om een proces van een  proces
       groep naar een andere te verplaatsen (zoals gedaan wordt door sommige shells bij het maken
       van pijpen), dan moeten beide proces groepen  onderdeel  van  dezelfde  sessie  zijn  (zie
       setsid(2)   en  credentials(7)).  In  dit geval bepaald de pgid een bestaande proces groep
       waarbij aangesloten zal worden en het sessie ID van die groep  moet  overeenkomen  met  de
       sessie ID van de aansluitende groep.

       De  POSIX.1  versie  van getpgrp(), die geen argument nodig heeft, retourneert de PGID van
       het aanroepende proces.

       getpgid() retourneert het PGID van het proces opgegeven in pid. Als pid nul is  dan  wordt
       het  proces  ID  van het huidige proces gebruikt. (Opvragen van PGID van een proces anders
       dan van de aanroeper is zelden nodig, en POSIX.1 getpgrp()  wordt geprefereerd  voor  deze
       taak.)

       De   System V-stijl   setpgrp(),   die  geen  argument  nodig  heeft,  is  equivalent  aan
       setpgid(0, 0).

       De BSD-specifieke setpgrp() aanroep, die de argumenten pid en pgid  nodig  heeft,  is  een
       omwikkel functie die

           setpgid(pid, pgid) aanroept.

       Vanaf  glibc 2.19, wordt de BSD-specifieke setpgrp() functie niet langer blootgegeven door
       <unistd.h>; aanroepen dienen te worden vervangen met de setpgid()  aanroep zoals hierboven
       getoond.

       De  BSD-specifieke  setpgrp()  aanroep,  die de argumenten pid en pgid nodig heeft, is een
       omwikkel functie die

           getpgid(pid) aanroept.

       Vanaf glibc 2.19, wordt de BSD-specifieke setpgrp() functie niet langer blootgegeven  door
       <unistd.h>; aanroepen dienen te worden vervangen met de setpgid()  aanroep zoals hierboven
       getoond.

EIND WAARDE

       Bij success wordt door setpgid()  en  setpgrp()  nul  teruggegeven.  Bij  falen  wordt  -1
       teruggegeven, en wordt errno overeenkomstig gezet.

       De POSIX.1 getpgrp() retourneert altijd het PGID van de aanroeper.

       getpgid(),  en  het  BSD-specifieke getpgrp() retourneren een proces groep bij slagen. Bij
       falen wordt -1 teruggegeven en wordt errno overeenkomstig gezet.

FOUTEN

       EACCES Een poging werd gedaan om de proces groep ID  van  een  van  de  kinderen  van  het
              huidige  proces  te  veranderen  en  het kind heeft al een een execve(2) uitgevoerd
              (setpgid(), setpgrp()).

       EINVAL pgid is minder dan 0 (setpgid(), setpgrp()).

       EPERM  Een poging werd gedaan om een proces te verplaatsen naar een proces  groep  in  een
              andere  sessie,  of om de proces groep ID te veranderen van een van de kinderen van
              het aanroepende proces en het kind zat in een andere sessie, of om de proces  groep
              ID te veranderen een een sessie leider  (setpgid(), setpgrp()).

       ESRCH  Voor getpgid(): pid kwam niet overeen met enig proces.

VOLDOET AAN

       De   functies  setpgid()  en  de  versie  van  getpgrp()  zonder  argumenten  voldoen  aan
       POSIX.1-2001.

       POSIX.1-2001 specificeert ook getpgid()  en de versie van  setpgrp()  die  geeft  argument
       neemt.  (POSIX.1-2008 markeert deze setpgrp() specificatie als verouderd.)

       De  versie  van  getpgrp() met een argument en de versie van setpgrp() met twee argumenten
       afgeleid van 4.2BSD, zijn niet gespecificeerd door POSIX.1.

OPMERKINGEN

       Een kind gecreëerd met fork(2) erft de PGID van zijn ouder. DE PGID  wordt  bewaard  langs
       een execve(2).

       Elke  proces  groep is lid van een sessie en elk proces is lid van een sessie waarvan zijn
       proces groep een lid is. (Zie credentials(7).)

       Een proces kan een controlerende terminal hebben. Op elk moment, een (en alleen  een)  van
       de  proces  groepen  in een sessie kan de voorgrond proces groep van een terminal zijn; de
       overblijvende proces groepen zijn in de achtergrond.  Als  een  signaal  werd  gegenereerd
       vanaf  een terminal (b.v. bedienen van de onderbreking toets om SIGINT() te genereren, dan
       wordt dit signaal verzonden naar de voorgrond  proces  groep.  (zie  termios(3)  voor  een
       beschrijving van de tekens die signalen genereren.)  Alleen de voorgrond proces groep  mag
       read(2) van de terminal; als een achtergrond proces groep probeert te read(2) lezen van de
       terminal,  dan  wordt  aan  de groep een SIGTTIN() signaal verstuurd, dat het opschort. De
       tcgetpgrp(3)  en tcsetpgrp(3) functies worden gebruikt om  het  voorgrond  proces  van  de
       controlerende terminal te krijgen/zetten.

       De  setpgid()   en  getpgrp()  aanroepen  worden  gebruikt door programma´s als bash(1) om
       proces groepen aan te maken om op die manier job control te implementeren.

       Als het beëindigen van een proces veroorzaakt dat een proces groep wordt verweesd, en  als
       enig  lid  van  de  nieuw verweesde proces groep wordt gestopt, dan zal een SIGHUP signaal
       gevolgd door een SIGCONT signaal worden verzonden naar elk proces in de  nieuwe  verweesde
       proces  groep.  Een  verweesde proces groep is er een in welke de ouder van elk lid van de
       proces groep is ofwel zelf ook een lid van de proces groep of is een lid  van  een  proces
       groep in een andere sessie (zie ook credentials(7)).

ZIE OOK

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

COLOFON

       Deze   pagina  is  onderdeel  van  release  5.13  van  het  Linux  man-pages-project.  Een
       beschrijving van het project, informatie over het melden van bugs en  de  nieuwste  versie
       van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.

VERTALING

       De   Nederlandse   vertaling   van  deze  handleiding  is  geschreven  door  Jos  Boersema
       <joshb@xs4all.nl>, Mario  Blättermann  <mario.blaettermann@gmail.com>  en  Luc  Castermans
       <luc.castermans@gmail.com>

       Deze  vertaling  is  vrije  documentatie;  lees  de  GNU  General Public License Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ of later over de Copyright-voorwaarden. Er  is
       geen AANSPRAKELIJKHEID.

       Indien  U  fouten  in  de vertaling van deze handleiding zou vinden, stuur een e-mail naar
       ⟨debian-l10n-dutch@lists.debian.org⟩.