GETGROUPS(2)GETGROUPS(2)NAME
getgroups - get group access list
BSD SYNOPSIS
#include <sys/types.h>
int getgroups(int gidsetlen, int *gidset);
POSIX SYNOPSIS
#include <sys/types.h>
int getgroups(int gidsetlen, gid_t gidset[]);
DESCRIPTION
Getgroups gets the supplementary group IDs of the user process and
stores it in the array gidset. The parameter gidsetlen indicates the
number of entries that may be placed in gidset. Getgroups returns the
actual number of groups returned in gidset.
For BSD applications, no more than NGROUPS, as defined in <sys/param.h>
will ever be returned. For POSIX applications, no more than
{NGROUPS_MAX} (see <limits.h>) will ever be returned.
If the gidsetlen parameter is zero, getgroups returns the number of
supplemental group IDs associated with the user process without
modifying the gidset array.
RETURN VALUE
A successful call returns the number of supplementary group IDs. A
value of -1 indicates that an error occurred, and the error code is
stored in the global variable errno.
ERRORS
The possible errors for getgroups are:
[EINVAL] The argument gidsetlen is not zero and is less than the
number of groups in the group set.
[EFAULT] The argument gidset specifies an invalid address.
SEE ALSOsetgroups(2), initgroups(3X), sysconf(2P)BUGS (BSD-SPECIFIC)
The gidset array should be of type gid_t, but remains integer for
compatibility with earlier systems.
4.2 Berkeley Distribution August 1, 1992 GETGROUPS(2)