getgroups
if ((count = getgroups(0, *gidlist)) > 0) {
if ((count = getgroups(count, *gidlist)) <= 0)
# define getgroups(a,b) ((a)==0 && (b)==NULL ? NGROUPS_MAX : getgroups((a),(b)))
user_groupslen = getgroups(0, NULL);
if (getgroups(user_groupslen, user_groups) == -1)
saved_egroupslen = getgroups(0, NULL);
if (getgroups(saved_egroupslen, saved_egroups) == -1)
int getgroups(int, gid_t []);
if ((len = getgroups(NGROUPS_MAX, gids)) < 0)
struct getgroups_args getgroups;
if ((ngroups = getgroups(NGROUPS, groups))) {
ngroups = getgroups(NGROUPS, groups + 1) + 1;
if ((ngrps = getgroups(NGROUPS_MAX, (gid_t *)grps)) < 0) {
ngroups = getgroups(NGROUPS, gidset);
ngroups = getgroups(NGROUPS, gidset);
ngroups = getgroups(NGROUPS, gidset);
ngroups = getgroups(ngroups_max, groups);
ngroups = getgroups(NGROUPS, groups);