GETGROUPS(2) SysV GETGROUPS(2)
NAME
getgroups - get supplementary group access list
SYNOPSIS
#include <sys/param.h>
ngroups = getgroups(gidsetlen, gidset)
int ngroups, gidsetlen, *gidset;
DESCRIPTION
getgroups gets the current group access list of the user process and
stores it in the array gidset. The parameter gidsetlen indicates the
number of entries that can be placed in gidset. getgroups returns the
actual number of groups returned in gidset. No more than NGROUPS_MAX
(8), as defined in <limits.h>, will ever be returned.
NOTES
At login time, a supplementary group list is unconditionally established.
The user's native group is automatically added to the front of this list.
Since this list only holds 8 entries, this implies that a maximum of 7
supplementary groups (taken from the registry) will be set for the user
at login time. Following login, a user can use setgroups(2) to set the
full supplementary list.
ERRORS
The possible errors for getgroup are
[EINVAL] The argument gidsetlen is nonzero and is smaller than the
number of groups in the group set.
[EFAULT] The argument gidset specifies an invalid address.
SEE ALSO
setgroups(2), initgroups(3X)
DIAGNOSTICS
A successful call returns the number of groups in the group set. A value
of -1 indicates that an error occurred, and the error code is stored in
the global variable errno.
BUGS
The gidset array should be of type gid_t, but remains integer for
compatibility with earlier systems.