]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - lib/libc/sys/getpgrp.2
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / lib / libc / sys / getpgrp.2
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 .\" 4. 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 .\" $FreeBSD$
30 .\"
31 .Dd June 4, 1993
32 .Dt GETPGRP 2
33 .Os
34 .Sh NAME
35 .Nm getpgrp
36 .Nd get process group
37 .Sh LIBRARY
38 .Lb libc
39 .Sh SYNOPSIS
40 .In unistd.h
41 .Ft pid_t
42 .Fn getpgrp void
43 .Ft pid_t
44 .Fn getpgid "pid_t pid"
45 .Sh DESCRIPTION
46 The process group of the current process is returned by
47 .Fn getpgrp .
48 The process group of the process identified by
49 .Fa pid
50 is returned by
51 .Fn getpgid .
52 If
53 .Fa pid
54 is zero,
55 .Fn getpgid
56 returns the process group of the current process.
57 .Pp
58 Process groups are used for distribution of signals, and
59 by terminals to arbitrate requests for their input: processes
60 that have the same process group as the terminal are foreground
61 and may read, while others will block with a signal if they attempt
62 to read.
63 .Pp
64 This system call is thus used by programs such as
65 .Xr csh 1
66 to create
67 process groups
68 in implementing job control.
69 The
70 .Fn tcgetpgrp
71 and
72 .Fn tcsetpgrp
73 calls
74 are used to get/set the process group of the control terminal.
75 .Sh RETURN VALUES
76 The
77 .Fn getpgrp
78 system call always succeeds.
79 Upon successful completion, the
80 .Fn getpgid
81 system call returns the process group of the specified process;
82 otherwise, it returns a value of \-1 and sets
83 .Va errno
84 to indicate the error.
85 .Sh COMPATIBILITY
86 This version of
87 .Fn getpgrp
88 differs from past Berkeley versions by not taking a
89 .Fa "pid_t pid"
90 argument.
91 This incompatibility is required by
92 .St -p1003.1-90 .
93 .Pp
94 From the
95 .St -p1003.1-90
96 Rationale:
97 .Pp
98 .Bx 4.3
99 provides a
100 .Fn getpgrp
101 system call that returns the process group ID for a specified process.
102 Although this function is used to support job control, all known
103 job-control shells always specify the calling process with this
104 function.
105 Thus, the simpler
106 .At V
107 .Fn getpgrp
108 suffices, and the added complexity of the
109 .Bx 4.3
110 .Fn getpgrp
111 has been omitted from POSIX.1.
112 The old functionality is available from the
113 .Fn getpgid
114 system call.
115 .Sh ERRORS
116 The
117 .Fn getpgid
118 system call
119 will succeed unless:
120 .Bl -tag -width Er
121 .It Bq Er ESRCH
122 there is no process whose process ID equals
123 .Fa pid
124 .El
125 .Sh SEE ALSO
126 .Xr getsid 2 ,
127 .Xr setpgid 2 ,
128 .Xr termios 4
129 .Sh STANDARDS
130 The
131 .Fn getpgrp
132 system call is expected to conform to
133 .St -p1003.1-90 .
134 .Sh HISTORY
135 The
136 .Fn getpgrp
137 system call appeared in
138 .Bx 4.0 .
139 The
140 .Fn getpgid
141 system call is derived from its usage in
142 .At V.4 .