getgroups(2) DG/UX R4.11MU05 getgroups(2)
NAME
getgroups, setgroups - get or set supplementary group access list IDs
SYNOPSIS
#include <unistd.h>
#include <sys/types.h>
int getgroups(int gidsetsize, gid_t *grouplist)
int setgroups(int ngroups, const gid_t *grouplist)
where:
gidsetsize The number of entries currently in grouplist
grouplist An array of group IDs
ngroups The number of entries to be in grouplist
DESCRIPTION
getgroups gets the current supplemental group access list of the
calling process and stores the result in the array of group IDs
specified by grouplist. This array has gidsetsize entries and must
be large enough to contain the entire list. This list cannot be
greater than {NGROUPS_MAX}. If gidsetsize equals 0, getgroups will
return the number of groups to which the calling process belongs
without modifying the array pointed to by grouplist.
setgroups sets the supplementary group access list of the calling
process from the array of group IDs specified by grouplist. The
number of entries is specified by ngroups and can not be greater than
{NGROUPS_MAX}. The calling process must have appropriate privilege
to successfully execute this function. For systems supporting the
DG/UX Capability Option, appropriate privilege is defined as having
one or more specific capabilities enabled in the effective capability
set of the calling process. See cap_defaults(5) for the default
capability for this system call.
On systems without the DG/UX Capability Option, appropriate privilege
means that the process has an effective UID of root. See the
appropriate_privilege(5) man page for more information.
RETURN VALUE
Upon successful completion, getgroups returns the number of
supplementary group IDs set for the calling process and setgroups
returns the value 0. Otherwise, a value of -1 is returned and errno
is set to indicate the error.
DIAGNOSTICS
getgroups will fail if:
EINVAL The value of gidsetsize is non-zero and less than the
number of supplementary group IDs set for the calling
process.
setgroups will fail if:
EINVAL The value of ngroups is greater than {NGROUPS_MAX}.
EPERM The calling process does not have appropriate
privilege.
Either call will fail if:
EFAULT A referenced part of the array pointed to by grouplist
is outside of the allocated address space of the
process. See groups(1).
SEE ALSO
chown(2), getuid(2), setuid(2), appropriate_privilege(5).
cap_defaults(5).
Licensed material--property of copyright holder(s)