NAME
getgroups
—
get group access list
LIBRARY
library “libc”
SYNOPSIS
#include
<unistd.h>
int
getgroups
(int
gidsetlen, gid_t
*gidset);
DESCRIPTION
Thegetgroups
()
system call gets the current group access list of the user process and stores
it in the array gidset. The
gidsetlen argument indicates the number of entries that
may be placed in gidset. The
getgroups
() system call returns the actual number of
groups returned in gidset. At least one and as many as
{NGROUPS_MAX}+1 values may 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.
The value of {NGROUPS_MAX}
should be
obtained using
sysconf(3) to avoid hard-coding it into the executable.
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
STANDARDS
The getgroups
() system call conforms to
IEEE Std 1003.1-2008 (“POSIX.1”).
HISTORY
The getgroups
() system call appeared in
4.2BSD.