1#include "pwf.h" 2 3static FILE* f; 4static char *line, **mem; 5static struct group gr; 6 7void setgrent() { 8 if (f) 9 fclose(f); 10 f = 0; 11} 12 13weak_alias(setgrent, endgrent); 14 15struct group* getgrent() { 16 struct group* res; 17 size_t size = 0, nmem = 0; 18 if (!f) 19 f = fopen("/etc/group", "rbe"); 20 if (!f) 21 return 0; 22 __getgrent_a(f, &gr, &line, &size, &mem, &nmem, &res); 23 return res; 24} 25 26struct group* getgrgid(gid_t gid) { 27 struct group* res; 28 size_t size = 0, nmem = 0; 29 __getgr_a(0, gid, &gr, &line, &size, &mem, &nmem, &res); 30 return res; 31} 32 33struct group* getgrnam(const char* name) { 34 struct group* res; 35 size_t size = 0, nmem = 0; 36 __getgr_a(name, 0, &gr, &line, &size, &mem, &nmem, &res); 37 return res; 38} 39