github.com/afumu/libc@v0.0.6/musl/src/passwd/getpwent.c (about)

     1  #include "pwf.h"
     2  
     3  static FILE *f;
     4  static char *line;
     5  static struct passwd pw;
     6  static size_t size;
     7  
     8  void setpwent()
     9  {
    10  	if (f) fclose(f);
    11  	f = 0;
    12  }
    13  
    14  weak_alias(setpwent, endpwent);
    15  
    16  struct 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  
    25  struct passwd *getpwuid(uid_t uid)
    26  {
    27  	struct passwd *res;
    28  	__getpw_a(0, uid, &pw, &line, &size, &res);
    29  	return res;
    30  }
    31  
    32  struct passwd *getpwnam(const char *name)
    33  {
    34  	struct passwd *res;
    35  	__getpw_a(name, 0, &pw, &line, &size, &res);
    36  	return res;
    37  }