getgrouplist(3)

getgrouplist3

Produce a user's effective group list

Usage

#include <unistd.h>

int

getgrouplist(const char *name, gid_t basegid, gid_t *groups, int *ngroups);

Library

Standard C Library (libc, -lc)

Overview

The getgrouplist() function retrieves from the group database the supplementary groups for the user specified in name and returns the effective group list, whose first group is the value of basegid and the others are the supplementary groups. basegid typically is the user's initial numerical group ID from the password database.

The effective group list is returned in the array pointed to by groups. The caller specifies the length of the groups array in the integer pointed to by ngroups. The number of groups of the effective group list, which may be greater than the groups array's length, is returned through ngroups.

Return values

The getgrouplist() function returns 0 on success and -1 if the length of the group list is too small to hold all the user's groups. In the latter case, the groups array is filled with as many groups as possible from the start of the effective group list, and the length pointed to by ngroups is set to the full length of the latter, thus to a value strictly greater than before the call.

Files

/etc/group

group membership list

Releases

87 releases since FreeBSD 2.0.5-RELEASE; the text changed 41 times.

  1. 2.0.5–2.1.7.1
  2. 2.2.2–3.4
  3. 3.5–3.5.1
  4. 4.0
  5. 4.1–4.2
  6. 4.3–4.4
  7. 4.5–4.11
  8. 5.0–6.3
  9. 6.4
  10. 7.0
  11. 7.1
  12. 7.2
  13. 7.3
  14. 7.4
  15. 8.0
  16. 8.1
  17. 8.2
  18. 8.3
  19. 8.4
  20. 9.0
  21. 9.1
  22. 9.2
  23. 9.3
  24. 10.0
  25. 10.1
  26. 10.2
  27. 10.3
  28. 10.4
  29. 11.0
  30. 11.1
  31. 11.2
  32. 11.3
  33. 11.4
  34. 12.0
  35. 12.1
  36. 12.2
  37. 12.3
  38. 12.4
  39. 13.0–13.2
  40. 13.3–14.3
  41. 14.4–14.5
  42. 15.0–16.0

History

The getgrouplist() function first appeared in 4.4BSD.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.