SETPGID(2) Linux Programmer's Manual SETPGID(2)
NAME
setpgid, getpgid, setpgrp, getpgrp - set/get process group
SYNOPSIS#include<unistd.h>intsetpgid(pid_tpid,pid_tpgid);pid_tgetpgid(pid_tpid);intsetpgrp(void);pid_tgetpgrp(void);DESCRIPTIONsetpgid sets the process group ID of the process specified
by pid to pgid. If pid is zero, the process ID of the
current process is used. If pgid is zero, the process ID
of the process specified by pid is used.
getpgid returns the process group ID of the process speci-
fied by pid. If pid is zero, the process ID of the cur-
rent process is used.
In the Linux DLL 4.4.1 library, setpgrp simply calls
setpgid(0,0).
getpgrp is equivalent to getpgid(0).
Process groups are used for distribution of signals, and
by terminals to arbitrate requests for their input: pro-
cesses that have the same process group as the terminal
are foreground and may read, while others will block with
a signal if they attempt to read.
These calls are thus used by programs such as csh(1) to
create process groups in implementing job control. The
TIOCGPGRP and TIOCSPGRP calls described in termios(4) are
used to get/set the process group of the control terminal.
RETURNVALUE
On success, setpgid and setpgrp return zero. On error, -1
is returned, and errno is set appropriately.
getpgid returns a process group on success. On error, -1
is returned, and errno is set appropriately.
getpgrp always returns the current process group.
ERRORSEINVALpgid is less than 0.
EPERM Various permission violations.
ESRCHpid does not match any process.
CONFORMINGTO
SVr4, POSIX, 4.4BSD.
CONFORMINGTO
The functions setpgid and getpgrp conform to POSIX.1. The
function setpgrp is from BSD 4.2. The function getpgid
conforms to SVr4.
SEEALSOgetuid(2), setsid(2), tcsetpgrp(3), termios(4)
Linux 1.2.4 15 April 1995 1