| 
INITGROUPS(3) | 
Library Functions Manual | 
INITGROUPS(3) | 
NAME
 initgroups — initialize supplementary group IDs
LIBRARY
 Standard C Library (libc, -lc)
SYNOPSIS
 #include <unistd.h>
int
initgroups(const char *name, gid_t basegid);
 
DESCRIPTION
 The 
initgroups() function uses the 
getgrouplist(3) function to calculate the supplementary group IDs for the user specified in 
name. This group list is then set up for the current process using 
setgroups(2). The 
basegid is automatically included in the group list. Typically this value is given as the group number from the password file.
If the groups database lists more than NGROUPS groups for name (including one for basegid), the later groups are ignored.
 
RETURN VALUES
 The initgroups() function returns -1 if it was not invoked by the super-user.
HISTORY
 The initgroups() function appeared in 4.2BSD.
BUGS
 The 
getgrouplist() function called by 
initgroups() uses the routines based on 
getgrent(3). If the invoking program uses any of these routines, the group structure will be overwritten in the call to 
initgroups().