xref: /csrg-svn/old/groups/groups.c (revision 6013)
1*6013Swnj /*	groups.c	4.1	82/02/28	*/
2*6013Swnj 
3*6013Swnj /*
4*6013Swnj  * groups
5*6013Swnj  */
6*6013Swnj 
7*6013Swnj #include <sys/param.h>
8*6013Swnj #include <grp.h>
9*6013Swnj #include <pwd.h>
10*6013Swnj 
11*6013Swnj int	grps[NGRPS/(sizeof(int)*8)];
12*6013Swnj struct	group *gr, *getgrgid();
13*6013Swnj 
14*6013Swnj main(argc, argv)
15*6013Swnj 	int argc;
16*6013Swnj 	char *argv[];
17*6013Swnj {
18*6013Swnj 	char *sep = "";
19*6013Swnj 	int i;
20*6013Swnj 
21*6013Swnj 	setgrp(0, grps);
22*6013Swnj 	for (i = 0; i < NGRPS; i++)
23*6013Swnj 		if (grps[i/(sizeof(int)*8)] & (1<<(i%(sizeof(int)*8)))) {
24*6013Swnj 			gr = getgrgid(i);
25*6013Swnj 			if (gr == NULL)
26*6013Swnj 				printf("%s%d", sep, i);
27*6013Swnj 			else
28*6013Swnj 				printf("%s%s", sep, gr->gr_name);
29*6013Swnj 			sep = " ";
30*6013Swnj 		}
31*6013Swnj 	printf("\n");
32*6013Swnj 	exit(0);
33*6013Swnj }
34