initgroups
INITGROUPS(3)              Linux Programmer's Manual             INITGROUPS(3)
NAME
       initgroups - initialize the supplementary group access list
SYNOPSIS
       #include <grp.h>
       #include <sys/types.h>
       int initgroups(const char *user, gid_t group);
DESCRIPTION
       The  initgroups() function initializes the group access list by reading
       the group database /etc/group and using all groups of which user  is  a
       member.  The additional group group is also added to the list.
RETURN VALUE
       The  initgroups()  function  returns  0  on  success, or -1 if an error
       occurs.
ERRORS
       EPERM  The calling process does not have sufficient privileges.
       ENOMEM Insufficient memory to allocate group information structure.
FILES
       /etc/group          group database file
CONFORMING TO
       SVID 3, BSD 4.3
NOTES
       The prototype for  initgroups  is  only  available  if  _BSD_SOURCE  is
       defined   (either   explicitly,   or   implicitly,   by   not  defining
       _POSIX_SOURCE or compiling with the -ansi flag).
SEE ALSO
       getgroups(2), setgroups(2)
GNU                               1993-04-05                     INITGROUPS(3)