SETGROUPS(2)              NetBSD System Calls Manual              SETGROUPS(2)

NAME
     setgroups -- set group access list

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <sys/param.h>
     #include <unistd.h>

     int
     setgroups(int ngroups, const gid_t *gidset);

DESCRIPTION
     setgroups() sets the group access list of the current user process
     according to the array gidset.  The parameter ngroups indicates the num-
     ber of entries in the array and must be no more than {NGROUPS_MAX}.

     Only the super-user may set new groups.

     This system call affects only secondary groups.

RETURN VALUES
     A 0 value is returned on success, -1 on error, with an error code stored
     in errno.

ERRORS
     The setgroups() call will fail if:

     [EINVAL]           The value of ngroups is greater than {NGROUPS_MAX}.

     [EPERM]            The caller is not the super-user.

     [EFAULT]           The address specified for gidset is outside the
                        process address space.

SEE ALSO
     getgroups(2), setegid(2), setgid(2), setregid(2), initgroups(3)

HISTORY
     The setgroups() function call appeared in 4.2BSD.

NetBSD 5.0_STABLE               October 7, 2006              NetBSD 5.0_STABLE
