GETGROUPS(2)

NAME
getgroups - get group access list

LIBRARY
libc

SYNOPSIS
#include <sys/types.h>
#include <unistd.h>
int
getgroups(int gidsetlen, gid_t *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 may be placed in gidset. Getgroups() returns the actual number of groups returned in gidset. No more than NGROUPS_MAX will ever be returned. If gidsetlen is zero, getgroups() returns the number of supplementary group IDs associated with the calling process without modifying the array pointed to by gidset.

RETURN VALUES
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.

ERRORS
The possible errors for getgroups() are:

[EINVAL]
    The argument gidsetlen is smaller than the number of groups in the group set.

[EFAULT]
    The argument gidset specifies an invalid address.

SEE ALSO
setgroups(2), initgroups(3)

HISTORY
The getgroups() function call appeared in 4.2BSD.