setgroups -- set list of supplementary group IDs
int setgroups(size_t size, const gid_t *list);
Sets the supplementary groups for the process.
Only the super-user may use this function.
On success, zero is returned. On error, -1 is
returned, and errno is set appropriately.
list has an invalid address.
The user is not the super-user.
Size is greater than NGROUPS (32 for Linux 2.0.32).
The __USE_BSD flag probably shouldn't be required for setgroups.