Definitions according to their man pages: ```c struct passwd *getpwent_r(struct passwd *pwd, char *buffer, int buflen); struct group *getgrent_r(struct group *grp, char *buffer, int bufsize); ``` * [solaris getpwent_r man page](https://sites.google.com/a/diviware.com/unix/unix-page/solaris-page/solaris-man-pages/3c/getpwent_r) * [solaris getgrent_r man page](https://sites.google.com/a/diviware.com/unix/unix-page/solaris-page/solaris-man-pages/3c/getgrent_r) * [illumos getpwent_r man page](https://illumos.org/man/3C/getpwent) * [illumos getgrent_r man page](https://illumos.org/man/3C/getgrent) `libc` exposes them as: ```rust pub unsafe extern "C" fn getgrent_r( grp: *mut group, buf: *mut c_char, buflen: size_t, result: *mut *mut group ) -> c_int pub unsafe extern "C" fn getpwent_r( pwd: *mut passed, buf: *mut c_char, buflen: size_t, result: *mut *mut passed ) -> c_int ```