Pegasus InfoCorp: Web site design and web software development company

GETGROUPS (2)

get/set list of supplementary group IDs

SYNOPSIS

    #include <unistd.h> int getgroups(int size , gid_t list []); #define __USE_BSD #include <grp.h> int setgroups(size_t size , const gid_t * list );

DESCRIPTION

    getgroups

      Up to size supplementary groups are returned in list . If size is zero, list is not modified, but the total number of supplementary groups for the process is returned.

    setgroups

      Sets the supplementary groups for the process. Only the super-user may use this function.

RETURN VALUE

    getgroups

      On success, the number of supplementary group IDs is returned. On error, -1 is returned, and errno is set appropriately.

    setgroups

      On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

ERRORS

    EFAULT

      list has an invalid address.

    EPERM

      For setgroups , the user is not the super-user.

    EINVAL

      For setgroups , size is greater than NGROUPS (32 for Linux 2.0.32). For getgroups , size is less than the number of supplementary group IDs, but is not zero.

CONFORMING TO

    SVr4, SVID (issue 4 only; these calls were not present in SVr3), X/OPEN, 4.3BSD. The getgroups function is in POSIX.1. Since setgroups requires privilege, it is not covered by POSIX.1.

BUGS

    The __USE_BSD flag probably shouldn't be required for setgroups .

SEE ALSO