Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/rainbow/nss/gids.c
blob: a374dbe2fd7aa7f12393192f8d5b1d99c4771126 (plain)
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
26
27
28
29
30
31
#define _GNU_SOURCE
#include <grp.h>
#include <stdio.h>
#include <string.h>
#define BUFLEN 4096

int main() {
     struct group gr, *grp;
     char buf[BUFLEN];
     int i, cnt;

     cnt = 0;

     setgrent();
     while (1) {
           i = getgrent_r(&gr, buf, BUFLEN, &grp);
           if (i) {
                 printf("status: %d\n", i);
                 break;
           }
           printf("\n%d: %s (%d)\n", cnt, grp->gr_name, grp->gr_gid);
           int num_members = strlen((char*)grp->gr_mem) / sizeof(char*);
           for (i = 0; i < num_members; i++)
             printf("%s ", grp->gr_mem[i]);
           if (num_members) printf("\n");
           cnt++;
     }
     endgrent();
     return 0;
}