The
getgrouplist();
function reads through the
group(5)
file and calculates the group access list for the user specified in
name.
The
basegid
is automatically included in the groups list.
Typically this value is given as
the group number from the password file.
If YP is active and the group file contains no exclusions, the
netid(5)
file and the
netid.byname
YP map will be used in addition to the group file.
If the group file contains at least one exclusion, the
group.byname
YP map will be used in addition to the group file.
The resulting group list is returned in the integer array pointed to by
groups.
The caller specifies the size of the
groups
array in the integer pointed to by
ngroups;
the actual number of groups found is returned in
ngroups.
RETURN VALUES
The
getgrouplist();
function returns 0 if successful and \-1 if the size of the group list is
too small to hold all the user's groups.
Here, the group array will be filled with as many groups as will fit.
The
getgrouplist();
function first appeared in
4.4BSD.
BUGS
The
getgrouplist();
function uses the routines based on
getgrent(3).
If the invoking program uses any of these routines,
the group structure will be overwritten in the call to
getgrouplist();.