GETGROUPS
Section: Linux Programmer's Manual (2)
Updated: 10 December 1997
NAME
getgroups, setgroups - get/set list of supplementary group IDs
SYNOPSIS
#include <unistd.h>
int getgroups(int size, gid_t list[]);
#define __USE_BSD
#include <grp.h>
int setgroups(size_t size, const gid_t *list);
DESCRIPTION
- getgroups
-
Up to
size
supplementary groups are returned in
list.
If
size
is zero,
list
is not modified, but the total number of supplementary groups for the
process is returned.
- setgroups
-
Sets the supplementary groups for the process. Only the super-user may use
this function.
RETURN VALUE
- getgroups
-
On success, the number of supplementary group IDs is returned.
On error, -1 is returned, and
errno
is set appropriately.
- setgroups
-
On success, zero is returned. On error, -1 is returned, and
errno
is set appropriately.
ERRORS
- EFAULT
-
list
has an invalid address.
- EPERM
-
For
setgroups,
the user is not the super-user.
- EINVAL
-
For
setgroups,
size
is greater than
NGROUPS
(32 for Linux 2.0.32).
For
getgroups,
size
is less than the number of supplementary group IDs, but is not zero.
CONFORMING TO
SVr4, SVID (issue 4 only; these calls were not present in SVr3),
X/OPEN, 4.3BSD. The
getgroups
function is in POSIX.1. Since
setgroups
requires privilege, it is not covered by POSIX.1.
BUGS
The
__USE_BSD
flag probably shouldn't be required for
setgroups.
SEE ALSO
initgroups(3),
getgid(2),
setgid(2)