Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

setgroups(2)

initgroups(3X)

GETGROUPS(2)                         SysV                         GETGROUPS(2)



NAME
     getgroups - get supplementary group access list

SYNOPSIS
     #include <sys/param.h>

     ngroups = getgroups(gidsetlen, gidset)
     int ngroups, gidsetlen, *gidset;

DESCRIPTION
     getgroups gets the current group access list of the user process and
     stores it in the array gidset.  The parameter gidsetlen indicates the
     number of entries that can be placed in gidset.  getgroups returns the
     actual number of groups returned in gidset.  No more than NGROUPS_MAX
     (8), as defined in <limits.h>, will ever be returned.

NOTES
     At login time, a supplementary group list is unconditionally established.
     The user's native group is automatically added to the front of this list.
     Since this list only holds 8 entries, this implies that a maximum of 7
     supplementary groups (taken from the registry) will be set for the user
     at login time.  Following login, a user can use setgroups(2) to set the
     full supplementary list.

ERRORS
     The possible errors for getgroup are

     [EINVAL]       The argument gidsetlen is nonzero and is smaller than the
                    number of groups in the group set.

     [EFAULT]       The argument gidset specifies an invalid address.

SEE ALSO
     setgroups(2), initgroups(3X)

DIAGNOSTICS
     A successful call returns the number of groups in the group set.  A value
     of -1 indicates that an error occurred, and the error code is stored in
     the global variable errno.

BUGS
     The gidset array should be of type gid_t, but remains integer for
     compatibility with earlier systems.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026