getgrgid.c 405 B

12345678910111213141516171819202122232425
  1. #include <stddef.h>
  2. #include <grp.h>
  3. extern int _getpw(int *, char **, char **);
  4. extern char **_grpmems(char *);
  5. static struct group holdgroup;
  6. struct group *
  7. getgrgid(gid_t gid)
  8. {
  9. int num;
  10. char *nam, *mem;
  11. num = gid;
  12. nam = 0;
  13. mem = 0;
  14. if(_getpw(&num, &nam, &mem)){
  15. holdgroup.gr_name = nam;
  16. holdgroup.gr_gid = num;
  17. holdgroup.gr_mem = _grpmems(mem);
  18. return &holdgroup;
  19. }
  20. return NULL;
  21. }