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.