USER_FROM_UID(3) | Library Functions Manual | USER_FROM_UID(3)

# NAME

`user_from_uid`, `uid_from_user`, `group_from_gid`, `gid_from_group` — cache password and group entries

# SYNOPSIS

`#include <pwd.h>`

int
`uid_from_user`(const char *name, uid_t *uid);

const char *
`user_from_uid`(uid_t uid, int nouser);

`#include <grp.h>`

int
`gid_from_group`(const char *name, gid_t *gid);

const char *
`group_from_gid`(gid_t gid, int nogroup);

# DESCRIPTION

The `user_from_uid`() function returns the user name associated with the argument uid. The user name is cached so that multiple calls with the same uid do not require additional calls to getpwuid(3). If there is no user associated with the uid, a pointer is returned to a string representation of the uid, unless the argument nouser is non-zero, in which case a null pointer is returned.

The `uid_from_user`() function returns the user ID associated with the argument name. The user ID is cached so that multiple calls with the same name do not require additional calls to getpwnam(3). If there is no user ID associated with the name, the `uid_from_user`() function returns -1; otherwise it stores the user ID at the location pointed to by uid and returns 0.

The `group_from_gid`() function returns the group name associated with the argument gid. The group name is cached so that multiple calls with the same gid do not require additional calls to getgrgid(3). If there is no group associated with the gid, a pointer is returned to a string representation of the gid, unless the argument nogroup is non-zero, in which case a null pointer is returned.

The `gid_from_group`() function returns the group ID associated with the argument name. The group ID is cached so that multiple calls with the same name do not require additional calls to getgrnam(3). If there is no group ID associated with the name, the `gid_from_group`() function returns -1; otherwise it stores the group ID at the location pointed to by gid and returns 0.

# SEE ALSO

getgrgid(3), getpwuid(3)

# HISTORY

The `user_from_uid`() and `group_from_gid`() functions first appeared in 4.3BSD-Reno in libutil and moved to libc in 4.4BSD.

The `uid_from_user`() and `gid_from_group`() functions were ported from NetBSD and first appeared in OpenBSD 6.4.

August 5, 2022 | Debian