setgroups sets the supplementary groups for the process. Only the super-user may use this function.
On success, 0 is returned. On error, -1 is returned and the global variable 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).