If the process has appropriate privilege, the initgroups() function shall initialize the Supplementary Group IDs for the current process by reading the group database and using all groups of which user is a member. The additional group group is also added to the list.
On success, 0 is returned.
On error, -1 is returned and
the global variable
errno is set appropriately.
The calling process does not have sufficient privileges.
Insufficient memory to allocate group information structure.