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