Application developers may want to specify an #include statement for <sys/types.h> before the one for <unistd.h> if programs are being developed for multiple platforms. The additional #include statement is not required on Tru64 UNIX systems or by ISO or X/Open standards, but may be required on other vendors' systems that conform to these standards.
Interfaces documented on this reference page conform to industry standards as follows:
getgroups(): POSIX.1, XPG4, XPG4-UNIX
Refer to the standards(5) reference page for more information about industry standards and associated tags.
Indicates the number of entries that can be stored in the array pointed to by the grouplist parameter. Points to the array in which the process' supplementary group IDs are stored. Element grouplist is the effective group ID of the process.
The getgroups() function gets the current supplementary group IDs of the calling process. The list is stored in the array pointed to by the grouplist parameter. The gidsetsize parameter indicates the number of entries that can be stored in this array.
The getgroups() function never returns more than NGROUPS_MAX entries. (NGROUPS_MAX is a constant defined in the limits.h header file.) If the gidsetsize parameter is 0 (zero), the getgroups() function returns the number of supplementary group IDs associated with the calling process without modifying the array pointed to by grouplist.
Upon successful completion, the getgroups() function returns the number of elements stored in the array pointed to by the grouplist parameter. Otherwise, the function returns a value of -1 and sets errno to indicate the error.
If the getgroups() function fails, errno might be set to one of the following values: [Digital] The gidsetsize and grouplist parameters specify an array that is partially or completely outside of the allocated address space of the process. The gidsetsize parameter is nonzero and smaller than the number of supplementary group IDs.
Functions: setgroups(2), getgid(2), setsid(2), initgroups(3)
Standards: standards(5) delim off