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