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