pwcache
,
user_from_uid
,
group_from_gid
— cache
password and group entries
Standard C Library (libc, -lc)
#include
<pwd.h>
const char *
user_from_uid
(uid_t
uid, int
nouser);
int
uid_from_user
(const
char *name, uid_t
*uid);
int
pwcache_userdb
(int
(*setpassent)(int), void
(*endpwent)(void), struct
passwd * (*getpwnam)(const char *),
struct passwd *
(*getpwuid)(uid_t));
#include
<grp.h>
const char *
group_from_gid
(gid_t
gid, int
nogroup);
int
gid_from_group
(const
char *name, gid_t
*gid);
int
pwcache_groupdb
(int
(*setgroupent)(int), void
(*endgrent)(void), struct
group * (*getgrnam)(const char *),
struct group *
(*getgrgid)(gid_t));
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
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
uid_from_user
()
function returns the uid associated with the argument
name. The uid is cached so that multiple calls with
the same name do not require additional calls to
getpwnam(3).
If there is no uid associated with the name, the
uid_from_user
() function returns -1; otherwise it
stores the uid at the location pointed to by uid and
returns 0.
The
gid_from_group
()
function returns the gid associated with the argument
name. The gid is cached so that multiple calls with
the same name do not require additional calls to
getgrnam(3).
If there is no gid associated with the name, the
gid_from_group
() function returns -1; otherwise it
stores the gid at the location pointed to by gid and
returns 0.
The
pwcache_userdb
()
function changes the user database access routines which
user_from_uid
() and
uid_from_user
() call to search for users. The caches
are flushed and the existing
endpwent
()
method is called before switching to the new routines.
getpwnam and getpwuid must be
provided, and setpassent and
endpwent may be NULL
pointers.
The
pwcache_groupdb
()
function changes the group database access routines which
group_from_gid
() and
gid_from_group
() call to search for groups. The
caches are flushed and the existing
endgrent
()
method is called before switching to the new routines.
getgrnam and getgrgid must be
provided, and setgroupent and
endgrent may be NULL
pointers.
If insufficient memory is available,
user_from_uid
() and
group_from_gid
() may return NULL pointers.
errno is set to ENOMEM
.
The user_from_uid
() and
group_from_gid
() functions first appeared in
4.4BSD.
The uid_from_user
() and
gid_from_group
() functions first appeared in
NetBSD 1.4.
The pwcache_userdb
() and
pwcache_groupdb
() functions first appeared in
NetBSD 1.6 and FreeBSD
10.0.