Provided by: manpages-nl-dev_4.27.0-1_all bug

NAAM

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

BIBLIOTHEEK

       Standard C bibliotheek  (libc, -lc)

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 */
       [[afgekeurd]] pid_t getpgrp(pid_t pid);            /* BSD versie */

       int setpgrp(void);                   /* System V versie */
       [[afgekeurd]] 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
               || /* Sinds 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)

       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)

       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()).

       EPERM  De doel proces groep bestaat niet. (setpgid(), setpgrp()).

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

VOLDOET AAN

       getpgid()
       getpgid()
       setpgrp() (geen argumenten)
       setpgrp() (geen argumenten):
              POSIX.1-2008 (maar zie GESCHIEDENIS).

       setpgrp() (2 argumenten):
       setpgrp() (1 argument)
              Geen.

GESCHIEDENIS

       getpgid()
       getpgid()
       setpgrp() (geen argumenten)
              POSIX.1-2001.

       setpgrp() (geen argumenten):
              POSIX.1-2001, POSIX.1-2008 markeert het als verouderd.

       setpgrp() (2 argumenten):
       setpgrp() (1 argument)
              4.2BSD.

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)

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

Linux man-pagina's 6.9.1                           2 mei 2024                                         getpgid(2)