64 size_t buflen,
struct passwd **result)
66 #if defined(FRONTEND) && defined(ENABLE_THREAD_SAFETY) && defined(HAVE_GETPWUID_R)
67 return getpwuid_r(uid, resultbuf, buffer, buflen, result);
71 *result = getpwuid(uid);
73 return (*result == NULL) ? errno : 0;
89 struct passwd *pw = NULL;
92 pwerr =
pqGetpwuid(user_id, &pwdstr, pwdbuf,
sizeof(pwdbuf), &pw);
95 strlcpy(buffer, pw->pw_name, buflen);
100 _(
"could not look up local user ID %d: %s"),
105 _(
"local user with ID %d does not exist"),
124 struct passwd pwdstr;
125 struct passwd *pw = NULL;
128 pwerr =
pqGetpwuid(user_id, &pwdstr, pwdbuf,
sizeof(pwdbuf), &pw);
131 strlcpy(buffer, pw->pw_dir, buflen);
136 _(
"could not look up local user ID %d: %s"),
141 _(
"local user with ID %d does not exist"),
size_t strlcpy(char *dst, const char *src, size_t siz)
bool pg_get_user_home_dir(uid_t user_id, char *buffer, size_t buflen)
bool pg_get_user_name(uid_t user_id, char *buffer, size_t buflen)
static int pqGetpwuid(uid_t uid, struct passwd *resultbuf, char *buffer, size_t buflen, struct passwd **result)