blob: 3197feb15935b5adf60bcedc46f60d812f39094b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int group_member(gid_t gid) {
gid_t *grouplist = NULL;
int res,i;
res = getgroups(0,NULL);
if (res >= 0) {
grouplist = calloc(sizeof(gid_t),res);
res = getgroups(res,grouplist);
if (res >=0) {
for(i=0;i<res;i++) {
if (grouplist[i] == gid) break;
}
}
}
if (res == -1) {
perror("Can't get number of groups!");
return -1;
} else {
return (i<res);
}
}
|