123456789101112131415161718192021222324252627282930313233343536373839 |
- #include "pwf.h"
- static FILE *f;
- static char *line, **mem;
- static struct group gr;
- void setgrent()
- {
- if (f) fclose(f);
- f = 0;
- }
- weak_alias(setgrent, endgrent);
- struct group *getgrent()
- {
- struct group *res;
- size_t size=0, nmem=0;
- if (!f) f = fopen("/etc/group", "rbe");
- if (!f) return 0;
- __getgrent_a(f, &gr, &line, &size, &mem, &nmem, &res);
- return res;
- }
- struct group *getgrgid(gid_t gid)
- {
- struct group *res;
- size_t size=0, nmem=0;
- __getgr_a(0, gid, &gr, &line, &size, &mem, &nmem, &res);
- return res;
- }
- struct group *getgrnam(const char *name)
- {
- struct group *res;
- size_t size=0, nmem=0;
- __getgr_a(name, 0, &gr, &line, &size, &mem, &nmem, &res);
- return res;
- }
|