unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

getgroups(2)                     System Calls                     getgroups(2)



NAME
       getgroups, setgroups - get or set supplementary group access list IDs

SYNOPSIS
       #include <unistd.h>

       int getgroups(int gidsetsize, gid_t *grouplist);

       int setgroups(int ngroups, const gid_t *grouplist);

DESCRIPTION
       The  getgroups()  function  gets  the current supplemental group access
       list of the calling process and stores the result in the array of group
       IDs  specified by grouplist. This array has gidsetsize entries and must
       be large enough to contain the entire list. This list cannot be  larger
       than  NGROUPS_MAX.  If gidsetsize equals 0, getgroups() will return the
       number of groups to which the calling process belongs without modifying
       the array pointed to by grouplist.

       The  setgroups()  function  sets the supplementary group access list of
       the calling process from the array of group IDs specified by grouplist.
       The  number  of  entries is specified by ngroups and can not be greater
       than NGROUPS_MAX.

RETURN VALUES
       Upon successful completion, getgroups() returns the number  of  supple-
       mentary  group  IDs set for the calling process and setgroups() returns
       0. Otherwise, -1 is returned and errno is set to indicate the error.

ERRORS
       The getgroups() and setgroups() functions will fail if:

       EFAULT          A referenced part of the array pointed to by  grouplist
                       is an illegal address.



       The getgroups() function will fail if:

       EINVAL          The  value  of gidsetsize is non-zero and less than the
                       number of supplementary group IDs set for  the  calling
                       process.



       The setgroups() function will fail if:

       EINVAL          The value of ngroups is greater than {NGROUPS_MAX}.



       EPERM           The  {PRIV_PROC_SETID} privilege is not asserted in the
                       effective set of the calling process.



USAGE
       Use of the setgroups() function requires the  {PRIV_PROC_SETID}  privi-
       lege.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:


       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE  Interface  Stabilityget-
       groups() is Standard.  MT-LevelAsync-Signal-Safe


SEE ALSO
       groups(1),   chown(2),   getuid(2),   setuid(2),   getgrnam(3C),  init-
       groups(3C), attributes(5), privileges(5), standards(5)



SunOS 5.10                        1 Feb 2003                      getgroups(2)