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