Man page - setpgrp(2)

Packages contains this manual

Available languages:

en fr pl nl ja ru ro de

Manual

setpgid

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
STANDARDS
HISTORIQUE
NOTES
VOIR AUSSI
TRADUCTION

NOM

setpgid, getpgid, setpgrp, getpgrp - Définir ou lire le groupe du processus

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

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 */
[[obsolĂšte]] pid_t getpgrp(pid_t
pid ); /* Version BSD */

int setpgrp(void); /* Version System V */
[[obsolĂšte]] int setpgrp(pid_t
pid , pid_t pgid ); /* Version BSD */

Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros (7)) :

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

setpgrp () (POSIX.1) :
_XOPEN_SOURCE >= 500
" || /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE
" || /* glibc <= 2.19 : */ _SVID_SOURCE

setpgrp () (BSD), getpgrp () (BSD) :
[Ils ne sont disponibles qu’avant la glibc 2.19]
_BSD_SOURCE &&
! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE
|| _GNU_SOURCE || _SVID_SOURCE)

DESCRIPTION

Toutes ces interfaces sont disponibles sous Linux et sont utilisĂ©es pour rĂ©cupĂ©rer et dĂ©finir l’identifiant du groupe de processus (PGID : « Process Group ID ») d’un processus. La façon prĂ©fĂ©rĂ©e, spĂ©cifiĂ©e par POSIX.1 est : getpgrp (void) pour rĂ©cupĂ©rer le PGID du processus appelant et setpgid () pour dĂ©finir le PGID d’un processus.

setpgid () dĂ©finit Ă  pgid le PGID du processus mentionnĂ© par pid . Si pid vaut zĂ©ro, alors le PID du processus appelant est utilisĂ©. Si pgid vaut zĂ©ro, alors le PGID du processus indiquĂ© par pid est positionnĂ© Ă  la mĂȘme valeur que l’identifiant du processus. Si setpgid est utilisĂ© pour dĂ©placer un processus d’un groupe dans un autre (comme cela peut ĂȘtre fait par certains interprĂ©teurs de commandes pour les pipelines), les deux groupes de processus doivent appartenir Ă  la mĂȘme session (consultez setsid (2) et credentials (7)). Dans ce cas, pgid indique un groupe de processus existant Ă  rejoindre et l’ID de session de ce groupe doit ĂȘtre celui du processus concernĂ©.

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

getpgid () renvoie le PGID du processus indiquĂ© par pid . Si pid vaut zĂ©ro, le PID du processus appelant est utilisĂ©. La rĂ©cupĂ©ration du PGID d’un processus autre que l’appelant est rarement utilisĂ©e et getpgrp () de POSIX.1 est prĂ©fĂ©rĂ©e pour cette tĂąche.

L’appel setpgrp () de System V, qui ne prend pas de paramĂštres, est Ă©quivalent Ă  setpgid(0, 0) .

L’appel setpgrp () spĂ©cifique Ă  BSD qui prend les paramĂštres pid et pgid est une fonction d’encapsulation de

setpgid(pid, pgid)

A partir de la glibc 2.19, la fonction spĂ©cifique Ă  BSD setpgrp () ne figure plus dans <unistd.h> ; les appels Ă  cette fonction doivent ĂȘtre remplacĂ©s par des appels Ă  setpgid () tel qu’indiquĂ© prĂ©cĂ©demment.

L’appel getpgrp () spĂ©cifique Ă  BSD qui prend un unique paramĂštre pid est une fonction d’encapsulation de

getpgid(pid)

A partir de la glibc 2.19, la fonction spĂ©cifique Ă  BSD getpgrp () ne figure plus dans <unistd.h> ; les appels Ă  cette fonction doivent ĂȘtre remplacĂ©s par des appels Ă  la fonction POSIX.1 getpgrp () qui ne prend pas d’argument (si l’appel a pour objet de rĂ©cupĂ©rer le PGID du processus appelant), ou par des appels Ă  getpgid () tel que dĂ©crit prĂ©cĂ©demment.

VALEUR RENVOYÉE

setpgid () et setpgrp () renvoient zĂ©ro s’ils rĂ©ussissent, ou -1 s’ils Ă©chouent, auquel cas errno est positionnĂ© pour indiquer l’erreur.

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

getpgid () et l’appel spĂ©cifique Ă  BSD getpgrp () renvoient le groupe du processus s’ils rĂ©ussissent. En cas d’erreur, -1 est renvoyĂ© et errno est positionnĂ© pour indiquer l’erreur.

ERREURS

EACCES

On a essayĂ© de changer l’identifiant du groupe de processus d’un des enfants du processus appelant, et l’enfant avait dĂ©jĂ  effectuĂ© un execve (2) ( setpgid (), setpgrp ()).

EINVAL

pgid est inférieur à 0 ( setpgid (), setpgrp ()).

EPERM

On a essayĂ© de dĂ©placer un processus dans un groupe d’une session diffĂ©rente, ou de changer le groupe d’un des enfants du processus appelant qui se trouve dans une autre session, ou de modifier le groupe d’un leader de session ( setpgid (), setpgrp ()).

EPERM

Le groupe du processus cible n’existe pas. ( setpgid (), setpgrp ()).

ESRCH

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

STANDARDS

getpgid ()
setpgid
()
getpgrp
() (pas d’argument)
setpgrp
() (pas d’argument)

POSIX.1-2008 (mais voir HISTORIQUE).

setpgrp () (2 arguments)
getpgrp
() (1 argument)

Aucun.

HISTORIQUE

getpgid ()
setpgid
()
getpgrp
() (pas d’argument)

POSIX.1-2001.

setpgrp () (pas d’argument)

POSIX.1-2001, POSIX.1-2008 le marque comme obsolĂšte.

setpgrp () (2 arguments)
getpgrp
() (1 argument)

4.2BSD.

NOTES

Un processus enfant créé par fork (2) hĂ©rite du PGID de son parent. Le PGID est conservĂ© au travers d’un execve (2).

Chaque groupe de processus est membre d’une session et chaque processus est membre de cette session (voir credentials (7)).

Une session peut avoir un terminal de contrĂŽle. À tout moment, un (et un seul) des groupes de processus de cette session peut ĂȘtre le groupe de premier plan du terminal ; les autre groupes de processus sont en arriĂšre-plan. Si un signal est gĂ©nĂ©rĂ© depuis le terminal (par exemple une touche d’interruption pour gĂ©nĂ©rer un SIGINT ), ce signal est envoyĂ© au groupe de processus au premier plan. Consultez termios (3) pour la liste des caractĂšres qui gĂ©nĂšrent des signaux. Seul le groupe de processus au premier plan peut lire avec read (2) sur le terminal ; si un groupe de processus en arriĂšre-plan essaie de lire avec read (2) sur le terminal, alors le groupe reçoit un signal SIGTTIN , qui le suspend. Les fonctions tcgetpgrp (3) et tcsetpgrp (3) sont utilisĂ©es pour rĂ©cupĂ©rer ou positionner le groupe de processus au premier plan du terminal de contrĂŽle.

Les appels setpgid () et getpgrp () sont utilisĂ©s par des programmes comme bash (1) pour crĂ©er des groupes de processus pour l’implĂ©mentation du contrĂŽle des travaux depuis l’interprĂ©teur de commande.

Si la fin du processus rend un groupe de processus orphelin, et si l’un des membres de ce groupe est arrĂȘtĂ©, alors un signal SIGHUP suivi d’un signal SIGCONT sera envoyĂ© Ă  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 diffĂ©rente (voyez credentials (7)).

VOIR AUSSI

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

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Cédric Boutillier <cedric.boutillier@gmail.com>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .