Linux |
CentOS 4.8 |
|
setpgrp(2) |
setpgid, getpgid, setpgrp, getpgrp − Fixer / lire le groupe du processus. |
#include <unistd.h> int setpgid(pid_t pid, pid_t
pgid); |
setpgid fixe à pgid l’ID du groupe de processus auquel appartient le processus mentionné par pid. Si pid vaut zéro, le PID du processus en cours est utilisé. Si pgid vaut zéro, le PID du processus indiqué par pid est utilisé. getpgid renvoie l’ID du groupe de processus auquel appartient le processus indiqué par pid. Si pid vaut zéro, le PID du processus en cours est utilisé. Dans la bibliothèque DLL Linux 4.4.1 setpgrp appelle simplement setpgid(0,0). getpgrp est équivalent à getpgid(0). Les groupes de processus sont utilisés pour la distribution de signaux, et par les terminaux pour contrôler les requêtes de saisie. Les processus appartenant au même groupe que le terminal sont en avant-plan, et peuvent y lire des données, alors que les autres sont en arrière plan et seront bloqués s’ils tentent de lire des données. Ces appels sont utilisés par des programmes comme csh(1) pour créer des groupes de processus afin d’implémenter le contrôle de jobs. Les appels TIOCGPGRP et TIOCSPGRP décrits dans termios(3) servent à fixer/lire le groupe de processus du terminal de contrôle. |
setpgid et setpgrp renvoient zéro s’ils réussissent, ou −1 s’ils échouent, auquel cas errno contient le code d’erreur. getpgid renvoie le groupe du processus s’il réussit ou −1 s’il échoue, et errno contient le code d’erreur. getpgrp retourne toujours le groupe du processus courant. |
EINVAL |
pgid est inférieur à 0. |
|||
EPERM |
Diverses violations d’autorisations |
|||
ESRCH |
pid ne correspond à aucun processus |
Les fonctions setpgid et getpgid sont conformes à POSIX.1. La fonction setpgid provient de BSD 4.2, et getpgid de SVr4. |
POSIX à défini setpgid à partir de la fonction setpgrp de BSD. Une fonction Système V existe avec le même nom, mais fonctionnant comme setsid(2). |
getuid(2), setsid(2), tcsetpgrp(3), termios(3) |
Christophe Blaess, 1997. |
setpgrp(2) |