pid_t
getpgrp(
void
)
pid_t
getpgid(
pid_t pid
)
).
The process group of the
pid
process is returned by
getpgid(
).
Process groups are used for distribution of signals, and by terminals to arbitrate requests for their input: processes 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.
This call is thus used by programs such as
csh(1)
to create
process groups
in implementing job control.
The
tcgetpgrp()
and
tcsetpgrp(
)
calls
are used to get/set the process group of the control terminal.
)
always succeeds, however
getpgid(
)
will succeed unless:
ESRCH
]
pid
.
)
function conforms to
IEEE Std 1003.1-1988 (``POSIX.1'') .
)
function call appeared in
4.0BSD.
The
getpgid(
)
function call is derived from its usage in
AT&T
System V.4 UNIX
,
and first appeared in
NetBSD1.3.
)
differs from past Berkeley versions by not taking a
pid_t pid
argument.
This incompatibility is required by
ISO/IEC 9945-1:1990 (``POSIX.1'') .
From the
ISO/IEC 9945-1:1990 (``POSIX.1'')
Rationale:
4.3BSD
provides a
getpgrp()
function that returns the process group ID for a specified process.
Although this function is used to support job control, all known
job-control shells always specify the calling process with this
function.
Thus, the simpler System V
getpgrp(
)
suffices, and the added complexity of the
4.3BSD
getpgrp(
)
has been omitted from POSIX.1.
The old functionality is available from the
getpgid(
)
function.