xref: /freebsd-14.2/lib/libc/sys/getpgrp.2 (revision b2c76c41)
1.\" Copyright (c) 1983, 1991, 1993
2.\"	The Regents of the University of California.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. Neither the name of the University nor the names of its contributors
13.\"    may be used to endorse or promote products derived from this software
14.\"    without specific prior written permission.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26.\" SUCH DAMAGE.
27.\"
28.\"     @(#)getpgrp.2	8.1 (Berkeley) 6/4/93
29.\"
30.Dd June 4, 1993
31.Dt GETPGRP 2
32.Os
33.Sh NAME
34.Nm getpgrp
35.Nd get process group
36.Sh LIBRARY
37.Lb libc
38.Sh SYNOPSIS
39.In unistd.h
40.Ft pid_t
41.Fn getpgrp void
42.Ft pid_t
43.Fn getpgid "pid_t pid"
44.Sh DESCRIPTION
45The process group of the current process is returned by
46.Fn getpgrp .
47The process group of the process identified by
48.Fa pid
49is returned by
50.Fn getpgid .
51If
52.Fa pid
53is zero,
54.Fn getpgid
55returns the process group of the current process.
56.Pp
57Process groups are used for distribution of signals, and
58by terminals to arbitrate requests for their input: processes
59that have the same process group as the terminal are foreground
60and may read, while others will block with a signal if they attempt
61to read.
62.Pp
63This system call is thus used by programs such as
64.Xr csh 1
65to create
66process groups
67in implementing job control.
68The
69.Fn tcgetpgrp
70and
71.Fn tcsetpgrp
72calls
73are used to get/set the process group of the control terminal.
74.Sh RETURN VALUES
75The
76.Fn getpgrp
77system call always succeeds.
78Upon successful completion, the
79.Fn getpgid
80system call returns the process group of the specified process;
81otherwise, it returns a value of \-1 and sets
82.Va errno
83to indicate the error.
84.Sh COMPATIBILITY
85This version of
86.Fn getpgrp
87differs from past Berkeley versions by not taking a
88.Fa "pid_t pid"
89argument.
90This incompatibility is required by
91.St -p1003.1-90 .
92.Pp
93From the
94.St -p1003.1-90
95Rationale:
96.Pp
97.Bx 4.3
98provides a
99.Fn getpgrp
100system call that returns the process group ID for a specified process.
101Although this function is used to support job control, all known
102job-control shells always specify the calling process with this
103function.
104Thus, the simpler
105.At V
106.Fn getpgrp
107suffices, and the added complexity of the
108.Bx 4.3
109.Fn getpgrp
110has been omitted from POSIX.1.
111The old functionality is available from the
112.Fn getpgid
113system call.
114.Sh ERRORS
115The
116.Fn getpgid
117system call
118will succeed unless:
119.Bl -tag -width Er
120.It Bq Er ESRCH
121there is no process whose process ID equals
122.Fa pid
123.El
124.Sh SEE ALSO
125.Xr getsid 2 ,
126.Xr setpgid 2 ,
127.Xr termios 4
128.Sh STANDARDS
129The
130.Fn getpgrp
131system call is expected to conform to
132.St -p1003.1-90 .
133.Sh HISTORY
134The
135.Fn getpgrp
136system call appeared in
137.Bx 4.0 .
138The
139.Fn getpgid
140system call is derived from its usage in
141.At V.4 .
142