1#include "pwf.h"
2
3static FILE* f;
4static char* line;
5static struct passwd pw;
6static size_t size;
7
8void setpwent() {
9    if (f)
10        fclose(f);
11    f = 0;
12}
13
14weak_alias(setpwent, endpwent);
15
16struct passwd* getpwent() {
17    struct passwd* res;
18    if (!f)
19        f = fopen("/etc/passwd", "rbe");
20    if (!f)
21        return 0;
22    __getpwent_a(f, &pw, &line, &size, &res);
23    return res;
24}
25
26struct passwd* getpwuid(uid_t uid) {
27    struct passwd* res;
28    __getpw_a(0, uid, &pw, &line, &size, &res);
29    return res;
30}
31
32struct passwd* getpwnam(const char* name) {
33    struct passwd* res;
34    __getpw_a(name, 0, &pw, &line, &size, &res);
35    return res;
36}
37