Annotation of src/lib/libc/gen/getgrouplist.3, Revision 1.8
1.8 ! ross 1: .\" $NetBSD: getgrouplist.3,v 1.7 2001/09/16 02:30:24 wiz Exp $
1.2 cgd 2: .\"
1.1 cgd 3: .\" Copyright (c) 1991, 1993
4: .\" The Regents of the University of California. All rights reserved.
5: .\"
6: .\" Redistribution and use in source and binary forms, with or without
7: .\" modification, are permitted provided that the following conditions
8: .\" are met:
9: .\" 1. Redistributions of source code must retain the above copyright
10: .\" notice, this list of conditions and the following disclaimer.
11: .\" 2. Redistributions in binary form must reproduce the above copyright
12: .\" notice, this list of conditions and the following disclaimer in the
13: .\" documentation and/or other materials provided with the distribution.
14: .\" 3. All advertising materials mentioning features or use of this software
15: .\" must display the following acknowledgement:
16: .\" This product includes software developed by the University of
17: .\" California, Berkeley and its contributors.
18: .\" 4. Neither the name of the University nor the names of its contributors
19: .\" may be used to endorse or promote products derived from this software
20: .\" without specific prior written permission.
21: .\"
22: .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23: .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24: .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25: .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26: .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27: .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28: .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29: .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30: .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31: .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32: .\" SUCH DAMAGE.
33: .\"
34: .\" @(#)getgrouplist.3 8.1 (Berkeley) 6/9/93
35: .\"
1.6 lukem 36: .Dd April 25, 1999
1.1 cgd 37: .Dt GETGROUPLIST 3
38: .Os
39: .Sh NAME
40: .Nm getgrouplist
41: .Nd calculate group access list
1.5 perry 42: .Sh LIBRARY
43: .Lb libc
1.1 cgd 44: .Sh SYNOPSIS
1.8 ! ross 45: .Fd #include \*[Lt]unistd.h\*[Gt]
1.1 cgd 46: .Ft int
1.3 jtc 47: .Fn getgrouplist "const char *name" "gid_t basegid" "gid_t *groups" "int *ngroups"
1.1 cgd 48: .Sh DESCRIPTION
49: The
50: .Fn getgrouplist
1.6 lukem 51: function reads through the group database and calculates
1.1 cgd 52: the group access list for the user specified in
53: .Fa name .
54: The
55: .Fa basegid
56: is automatically included in the groups list.
57: Typically this value is given as
1.6 lukem 58: the group number from the password database.
1.1 cgd 59: .Pp
60: The resulting group list is returned in the integer array pointed to by
61: .Fa groups .
1.7 wiz 62: The caller specifies the size of the
1.1 cgd 63: .Fa groups
64: array in the integer pointed to by
65: .Fa ngroups ;
66: the actual number of groups found is returned in
67: .Fa ngroups .
1.6 lukem 68: .Pp
69: Duplicate group ids will be suppressed from the result.
1.1 cgd 70: .Sh RETURN VALUES
71: The
72: .Fn getgrouplist
73: function
74: returns \-1 if the size of the group list is too small to
75: hold all the user's groups.
76: Here, the group array will be filled with as many groups as will fit.
77: .Sh FILES
78: .Bl -tag -width /etc/group -compact
79: .It Pa /etc/group
80: group membership list
81: .El
82: .Sh SEE ALSO
83: .Xr setgroups 2 ,
84: .Xr initgroups 3
85: .Sh HISTORY
86: The
87: .Fn getgrouplist
1.4 perry 88: function first appeared in
89: .Bx 4.4 .
1.1 cgd 90: .Sh BUGS
91: The
92: .Fn getgrouplist
93: function
94: uses the routines based on
95: .Xr getgrent 3 .
96: If the invoking program uses any of these routines,
97: the group structure will
98: be overwritten in the call to
99: .Fn getgrouplist .
1.6 lukem 100: .Pp
101: In the case where the group array is too small and duplicate gids
102: have been suppressed, the returned
103: .Fa ngroups
104: will be too large by a factor of the difference between the given
105: size and the number of matches.
106: This is not considered to be a major problem, since it's still going
107: to be a smaller figure than when duplicates were not suppressed.
CVSweb <webmaster@jp.NetBSD.org>