Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PWCACHE(3)		    Library Functions Manual		    PWCACHE(3)

NAME
       pwcache,	 user_from_uid,	group_from_gid -- cache	password and group en-
       tries

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #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));

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 rep-
       resentation  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	 argu-
       ment 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 as-
       sociated	with the name, the uid_from_user() function returns -1;	other-
       wise 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 argu-
       ment 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 as-
       sociated	 with the name,	the gid_from_group() function returns -1; oth-
       erwise 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 be-
       fore switching to the new routines.  getpwnam and getpwuid must be pro-
       vided, and setpassent and endpwent may be NULL pointers.

       The pwcache_groupdb() function changes the group	database  access  rou-
       tines  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.

ERRORS
       If   insufficient   memory   is	  available,	user_from_uid()	   and
       group_from_gid()	may return NULL	pointers.  errno is set	to ENOMEM.

SEE ALSO
       getgrgid(3), getgrnam(3), getpwnam(3), getpwuid(3)

HISTORY
       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.

FreeBSD	14.3			  May 5, 2020			    PWCACHE(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=user_from_uid&sektion=3&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help