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

     1  #include "pwf.h"
     2  
     3  static FILE *f;
     4  static char *line, **mem;
     5  static struct group gr;
     6  
     7  void setgrent()
     8  {
     9  	if (f) fclose(f);
    10  	f = 0;
    11  }
    12  
    13  weak_alias(setgrent, endgrent);
    14  
    15  struct group *getgrent()
    16  {
    17  	struct group *res;
    18  	size_t size=0, nmem=0;
    19  	if (!f) f = fopen("/etc/group", "rbe");
    20  	if (!f) return 0;
    21  	__getgrent_a(f, &gr, &line, &size, &mem, &nmem, &res);
    22  	return res;
    23  }
    24  
    25  struct group *getgrgid(gid_t gid)
    26  {
    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  
    33  struct group *getgrnam(const char *name)
    34  {
    35  	struct group *res;
    36  	size_t size=0, nmem=0;
    37  	__getgr_a(name, 0, &gr, &line, &size, &mem, &nmem, &res);
    38  	return res;
    39  }