INITGROUPS(3C)          Standard C Library Functions          INITGROUPS(3C)
NAME
       initgroups - initialize the supplementary group access list
SYNOPSIS
       #include <grp.h>
       #include <sys/types.h>       
int initgroups(
const char *name, 
gid_t basegid);
DESCRIPTION
       The 
initgroups() function reads the group database to get the group
       membership for the user specified by 
name, and initializes the
       supplementary group access list of the calling process (see       
getgrnam(3C) and 
getgroups(2)). The 
basegid group ID is also included
       in the supplementary group access list. This is typically the real
       group ID from the user database.
       While scanning the group database, if the number of groups, including
       the 
basegid entry, exceeds 
NGROUPS_MAX, subsequent group entries are
       ignored.
RETURN VALUES
       Upon successful completion, 0 is returned. Otherwise, -1 is returned
       and 
errno is set to indicate the error.
ERRORS
       The 
initgroups() function will fail and not change the supplementary
       group access list if:       
EPERM                The {
PRIV_PROC_SETID} privilege is not asserted in the
                effective set of the calling process.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +---------------+-----------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE |
       +---------------+-----------------+
       |MT-Level       | MT-Safe         |
       +---------------+-----------------+
SEE ALSO
       getgroups(2), 
getgrnam(3C), 
attributes(7)                               March 22, 2004                 INITGROUPS(3C)