Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       setpgid, getpgid, setpgrp, getpgrp - Fixer/lire le groupe du processus

SYNOPSIS

       #include <unistd.h>

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

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

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

   Exigences  de  macros  de  test de fonctionnalites pour la glibc (consultez
   feature_test_macros(7)) :

       getpgid() :
           _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE >= 200809L

       setpgrp() (POSIX.1) :
           _SVID_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED

       setpgrp() (BSD), getpgrp() (BSD) :
           _BSD_SOURCE &&
               ! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE ||
                  _XOPEN_SOURCE_EXTENDED || _GNU_SOURCE || _SVID_SOURCE)

DESCRIPTION

       Toutes ces interfaces sont disponibles sous  Linux  et  sont  utilisees
       pour  recuperer et fixer l'ID du groupe de processus (PGID : << Process
       Group ID >>) d'un processus. La facon  preferee,  celle  specifiee  par
       POSIX.1  est :  getpgrp(void)  pour  recuperer  le  PGID  du  processus
       appelant et setpgid() pour fixer le PGID d'un processus.

       setpgid() fixe a pgid le PGID du processus mentionne par  pid.  Si  pid
       vaut zero, alors le PID du processus appelant est utilise. Si pgid vaut
       zero, alors le PGID du processus indique par pid est  positionne  a  la
       meme valeur que l'identifiant du processus. Si setpgid est utilise pour
       deplacer un processus d'un groupe dans un autre (comme cela  peut  etre
       fait  par  certains  shell  pour  les  pipelines),  les deux groupes de
       processus doivent appartenir a la meme session (consultez setsid(2)  et
       credentials(7)).  Dans  ce  cas,  pgid  indique  un groupe de processus
       existant a rejoindre et l'ID de session de ce groupe doit etre celui du
       processus concerne.

       La version POSIX.1 de getpgrp(), qui ne prend pas de parametre, renvoie
       le PGID du processus appelant.

       getpgid() renvoie le PGID du processus indique par  pid.  Si  pid  vaut
       zero, le PID du processus appelant est utilise. La recuperation du PGID
       d'un processus autre que l'appelant est rarement utilisee et  getpgrp()
       est preferee pour cette tache.

       L'appel  setpgrp()  de  System V,  qui  ne  prend pas de parametre, est
       equivalent a setpgid(0, 0).

       L'appel setpgrp() specifique a BSD qui prend des parametres pid et pgid
       est equivalent a setpgid(pid, pgid).

       L'appel  getpgrp()  specifique  a BSD qui prend un unique parametre pid
       est equivalent a getpgid(pid).

VALEUR RENVOY'EE

       setpgid() et setpgrp() renvoient zero s'ils reussissent,  ou  -1  s'ils
       echouent, auquel cas errno contient le code d'erreur.

       L'appel getpgrp() de POSIX.1 renvoie le PGID du processus appelant.

       getpgid()  et l'appel specifique a BSD getpgrp() renvoient le groupe du
       processus s'il reussit.  En  cas  d'erreur  -1  est  renvoye  et  errno
       contient le code d'erreur.

ERREURS

       EACCES On  a  essaye  de  changer le groupe de processus d'un enfant du
              processus appelant, et ce fils  a  deja  effectue  un  execve(2)
              (setpgid(), setpgrp()).

       EINVAL pgid est inferieur a 0 (setpgid(), setpgrp()).

       EPERM  On  a  essaye  de  deplacer  un  processus  dans un groupe d'une
              session differente,  ou  de  changer  le  groupe  d'un  fils  du
              processus  appelant  qui se trouve dans une autre session, ou de
              modifier  le  groupe  d'un   leader   de   session   (setpgid(),
              setpgrp()).

       ESRCH  Pour  getpgid() :  pid  ne  correspond  a  aucun processus. Pour
              setpgid() : pid n'est ni le processus appelant, ni l'un  de  ses
              enfants.

CONFORMIT'E

       setpgid()  et  la  version de getpgrp() sans parametre sont conformes a
       POSIX.1-2001.

       POSIX.1-2001 specifie egalement getpgid() et la  version  de  setpgrp()
       qui ne prend pas de parametre. (POSIX.1-2008 marque cette specification
       de setpgrp() comme obsolete)

       La version de getpgrp() avec un parametre et la  version  de  setpgrp()
       qui prend deux parametres provient de BSD 4.2 et ne sont pas specifiees
       par POSIX.1.

NOTES

       Un processus fils cree par fork(2) herite du PGID de son pere. Le  PGID
       est conserve au travers d'un execve(2).

       Chaque groupe de processus est membre d'une session et chaque processus
       est membre de cette session.

       Une session peut avoir un terminal de controle. A tout moment,  un  (et
       un  seul) des groupes de processus de cette session peut etre le groupe
       de premier plan du terminal ; les autre groupes de  processus  sont  en
       arriere  plan.  Si un signal est genere depuis le terminal (par exemple
       une touche d'interruption pour generer un SIGINT), ce signal est envoye
       au  groupe  de  processus au premier plan. Consultez termios(3) pour la
       liste des caracteres qui  generent  des  signaux.  Seul  le  groupe  de
       processus  au  premier plan peut lire avec read(2) sur le terminal ; si
       un groupe de processus essaie de lire avec  read(2)  sur  le  terminal,
       alors le groupe recoit un signal SIGTSTP, qui le suspend. Les fonctions
       tcgetpgrp(3)  et  tcsetpgrp(3)  sont  utilisees   pour   recuperer   ou
       positionner  le  groupe  de  processus  au  premier plan du terminal de
       controle.

       Les appels setpgid() et getpgrp()  sont  utilises  par  des  programmes
       comme bash(1) pour creer des groupes de processus pour l'implementation
       du controle des travaux depuis l'interpreteur de commande.

       Si une session a un terminal de controle et le  drapeau  CLOCAL  de  ce
       terminal  n'est  pas  actif,  et  une  deconnexion se produit, alors le
       leader de la session recevra un signal SIGHUP. Si le leader se termine,
       le  signal SIGHUP sera envoye a tous les processus du groupe au premier
       plan sur le terminal de controle.

       Si la fin du processus rend un groupe de processus orphelin, et si l'un
       des  membres de ce groupe est arrete, alors un signal SIGHUP suivi d'un
       signal SIGCONT sera envoye a tous les processus du groupe orphelin.  Un
       groupe  de  processus  est orphelin si le parent de chaque processus du
       groupe est soit membre de ce groupe  ou  soit  membre  d'un  groupe  de
       processus dans une session differente (voyez credentials(7)).

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de  la  publication  3.32  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain   Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.