Libinfo-517.200.9.tar.gz
[apple/libinfo.git] / lookup.subproj / getgrouplist.3
1 .\" Copyright (c) 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 .\"     @(#)getgrouplist.3      8.1 (Berkeley) 6/9/93
29 .\" $FreeBSD: src/lib/libc/gen/getgrouplist.3,v 1.9 2007/01/09 00:27:53 imp Exp $
30 .\"
31 .\" @APPLE_LICENSE_HEADER_START@
32 .\"
33 .\" Portions Copyright (c) 2003-2013 Apple Inc.  All Rights Reserved.
34 .\"
35 .\" This file contains Original Code and/or Modifications of Original Code
36 .\" as defined in and that are subject to the Apple Public Source License
37 .\" Version 2.0 (the 'License'). You may not use this file except in
38 .\" compliance with the License. Please obtain a copy of the License at
39 .\" http://www.opensource.apple.com/apsl/ and read it before using this
40 .\" file.
41 .\"
42 .\" The Original Code and all software distributed under the License are
43 .\" distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
44 .\" EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
45 .\" INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
46 .\" FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
47 .\" Please see the License for the specific language governing rights and
48 .\" limitations under the License.
49 .\"
50 .\" @APPLE_LICENSE_HEADER_END@
51 .\"
52 .Dd June 9, 1993
53 .Dt GETGROUPLIST 3
54 .Os
55 .Sh NAME
56 .Nm getgrouplist
57 .Nd calculate partial group access list
58 .Sh LIBRARY
59 Standard system libraries.
60 .Sh SYNOPSIS
61 .In unistd.h
62 .Ft int
63 .Fn getgrouplist "const char *name" "int basegid" "int *groups" "int *ngroups"
64 .\".Fn getgrouplist "const char *name" "gid_t basegid" "gid_t *groups" "int *ngroups"
65 .Sh DESCRIPTION
66 The
67 .Fn getgrouplist
68 function obtains information from
69 .Xr opendirectoryd 8
70 to construct the group access list for the user specified in
71 .Fa name .
72 The
73 .Fa basegid
74 is automatically included in the groups list.
75 Typically this value is given as
76 the default group number from the user's account record.
77 .Pp
78 The resulting group list is returned in the array pointed to by
79 .Fa groups .
80 The caller specifies the size of the
81 .Fa groups
82 array in the integer pointed to by
83 .Fa ngroups ;
84 the actual number of groups found is returned in
85 .Fa ngroups .
86 .Sh RETURN VALUES
87 The
88 .Fn getgrouplist
89 function
90 returns 0 on success.
91 If the size of the group list is too small to
92 hold all the user's groups,
93 .Fn getgrouplist
94 returns \-1 to indicate failure.
95 In this case, the group array will be filled with as many groups as will fit.
96 .Sh FILES
97 .Bl -tag -width /etc/group -compact
98 .It Pa /etc/group
99 group membership list
100 .El
101 .Sh SEE ALSO
102 .Xr setgroups 2 ,
103 .Xr initgroups 3 ,
104 .Xr opendirectoryd 8 .
105 .Sh HISTORY
106 The
107 .Fn getgrouplist
108 function first appeared in
109 .Bx 4.4 .