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