Computer Science
GETGROUPS(2) Linux Programmer's Manual GETGROUPS(2)
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 set-
groups.
SEE ALSO
initgroups(3), getgid(2), setgid(2)
Linux 2.0.32 10 December 1997 1
Back to the index