GETGROUPS(2-SVR4) RISC/os Reference Manual GETGROUPS(2-SVR4)
NAME
getgroups, setgroups - get or set supplementary group access
list IDs
SYNOPSIS
#include <unistd.h>
int getgroups(int gidsetsize, gidt *grouplist)
int setgroups(int ngroups, const gidt *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 gidset-
size 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 cannot be greater than {NGROUPS_MAX}. This function may
be invoked only by the superuser.
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 effective user ID is not superuser.
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 ALSO
chown(2), getuid(2), setuid(2), initgroups(3C).
groups(1) in the User's Reference Manual.
DIAGNOSTICS
Upon successful completion, getgroups returns the number of
Printed 11/19/92 Page 1
GETGROUPS(2-SVR4) RISC/os Reference Manual GETGROUPS(2-SVR4)
supplementary group IDs set for the calling process and set-
groups returns the value 0. Otherwise, a value of -1 is
returned and errno is set to indicate the error.
Page 2 Printed 11/19/92