initgroups Subroutine

Purpose

Initializes supplementary group ID.

Library

Standard C Library (libc.a)

Syntax

int initgroups ( User BaseGID)
const char *User;
int BaseGID;

Description

Attention: The initgroups subroutine uses the getgrent and getpwent family of subroutines. If the program that invokes the initgroups subroutine uses any of these subroutines, calling the initgroups subroutine overwrites the static storage areas used by these subroutines.

The initgroups subroutine reads the defined group membership of the specified User parameter and sets the supplementary group ID of the current process to that value. The BaseGID parameter is always included in the supplementary group ID. The supplementary group is normally the principal user's group. If the user is in more than NGROUPS_MAX groups, set in the limits.h file, only NGROUPS_MAX groups are set, including the BaseGID group.

Parameters

Item Description
User Identifies a user.
BaseGID Specifies an additional group to include in the group set.

Return Values

Item Description
0 Indicates that the subroutine was success.
-1 Indicates that the subroutine failed. The errno global variable is set to indicate the error.