1/* 2 * Lookup a group by name 3 */ 4 5#include <stdio.h> 6#include <grp.h> 7#include <sys/types.h> 8 9int main(int argc, char **argv) 10{ 11 struct group *gr; 12 13 /* Check args */ 14 15 if (argc != 2) { 16 printf("ERROR: no arg specified\n"); 17 exit(1); 18 } 19 20 /* Do getgrnam() */ 21 22 if ((gr = getgrnam(argv[1])) == NULL) { 23 printf("FAIL: group %s does not exist\n", argv[1]); 24 exit(1); 25 } 26 27 /* Print group info */ 28 29 printf("PASS: group %s exists\n", argv[1]); 30 printf("gr_name = %s\n", gr->gr_name); 31 printf("gr_passwd = %s\n", gr->gr_passwd); 32 printf("gr_gid = %d\n", gr->gr_gid); 33 34 /* Group membership */ 35 36 if (gr->gr_mem != NULL) { 37 int i = 0; 38 39 printf("gr_mem = "); 40 while(gr->gr_mem[i] != NULL) { 41 printf("%s", gr->gr_mem[i]); 42 i++; 43 if (gr->gr_mem != NULL) { 44 printf(","); 45 } 46 } 47 printf("\n"); 48 } 49 50 exit(0); 51} 52