Remove advertising header from man pages.
[dragonfly.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: src/lib/libc/sys/getpgrp.2,v 1.11.2.6 2001/12/14 18:34:00 ru Exp $
30 .\" $DragonFly: src/lib/libc/sys/getpgrp.2,v 1.4 2007/02/25 18:35:05 swildner Exp $
31 .\"
32 .Dd June 4, 1993
33 .Dt GETPGRP 2
34 .Os
35 .Sh NAME
36 .Nm getpgrp ,
37 .Nm getpgid
38 .Nd get process group
39 .Sh LIBRARY
40 .Lb libc
41 .Sh SYNOPSIS
42 .In unistd.h
43 .Ft pid_t
44 .Fn getpgrp void
45 .Ft pid_t
46 .Fn getpgid "pid_t pid"
47 .Sh DESCRIPTION
48 The process group of the current process is returned by
49 .Fn getpgrp .
50 The process group of the process identified by
51 .Fa pid
52 is returned by
53 .Fn getpgid .
54 If
55 .Fa pid
56 is zero,
57 .Fn getpgid
58 returns the process group of the current process.
59 .Pp
60 Process groups are used for distribution of signals, and
61 by terminals to arbitrate requests for their input: processes
62 that have the same process group as the terminal are foreground
63 and may read, while others will block with a signal if they attempt
64 to read.
65 .Pp
66 This call is thus used by programs such as
67 .Xr csh 1
68 to create
69 process groups
70 in implementing job control.
71 The
72 .Fn tcgetpgrp
73 and
74 .Fn tcsetpgrp
75 calls
76 are used to get/set the process group of the control terminal.
77 .Sh RETURN VALUES
78 The
79 .Fn getpgrp
80 call always succeeds.
81 Upon successful completion, the
82 .Fn getpgid
83 call returns the process group of the specified process;
84 otherwise, it returns a value of \-1 and sets
85 .Va errno
86 to indicate the error.
87 .Sh COMPATIBILITY
88 This version of
89 .Fn getpgrp
90 differs from past Berkeley versions by not taking a
91 .Fa "pid_t pid"
92 argument.
93 This incompatibility is required by
94 .St -p1003.1-90 .
95 .Pp
96 From the
97 .St -p1003.1-90
98 Rationale:
99 .Pp
100 .Bx 4.3
101 provides a
102 .Fn getpgrp
103 function that returns the process group ID for a specified process.
104 Although this function is used to support job control, all known
105 job-control shells always specify the calling process with this
106 function.
107 Thus, the simpler
108 .At V
109 .Fn getpgrp
110 suffices, and the added complexity of the
111 .Bx 4.3
112 .Fn getpgrp
113 has been omitted from POSIX.1.
114 The old functionality is available from the
115 .Fn getpgid
116 function.
117 .Sh ERRORS
118 .Fn getpgid
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 function call is expected to conform to
133 .St -p1003.1-90 .
134 .Sh HISTORY
135 The
136 .Fn getpgrp
137 function call appeared in
138 .Bx 4.0 .
139 The
140 .Fn getpgid
141 function call is derived from its usage in System V Release 4.