Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

setpwent(3) [ultrix man page]

getpwent(3)						     Library Functions Manual						       getpwent(3)

Name
       getpwent, getpwuid, getpwnam, setpwent, endpwent, setpwfile - get password entry

Syntax
       #include <pwd.h>

       struct passwd *getpwent()

       struct passwd *getpwuid(uid)
       uid_t uid;

       struct passwd *getpwnam(name)
       char *name;

       void setpwent()

       void endpwent()

       void setpwfile(pathname)
       char *pathname

Description
       The  routines,  and each return a pointer to an object with the following structure containing the broken-out fields of a line in the pass-
       word database:
       struct  passwd { /* see getpwent(3) */
	       char    *pw_name;
	       char    *pw_passwd;
	       uid_t	pw_uid;
	       gid_t	pw_gid;
	       int	pw_quota;
	       char    *pw_comment;
	       char    *pw_gecos;
	       char    *pw_dir;
	       char    *pw_shell;
       };

       struct passwd *getpwent(), *getpwuid(), *getpwnam();

       The fields pw_quota and pw_comment are unused; the others have meanings described in

       A call to has the effect of rewinding the password file to allow repeated searches.  may be called to close the password database when pro-
       cessing is complete.

       The subroutine simply retrieves the next entry while and search until a matching uid or name is found (or until all entries are exhausted).
       The subroutine keeps a pointer in the database, allowing successive calls to be used to search the entire database.

       A call to must be made before a loop using in order to perform initialization and an must be used after the loop.  Both and make  calls	to
       and

       The  subroutine	sets  the pathname of the ASCII passwd file and optional hashed database to be used for local passwd lookups.  If a passwd
       file has been left open by a call to or will close it first.  does not directly affect the use of distributed passwd databases.

Restrictions
       All information is contained in a static area so it must be copied if it is to be saved.

       If YP is running, does not return the entries in any particular order.  See the Guide to the Yellow Pages Service for setup information.

       The password database may also be distributed via the BIND/Hesiod naming service.  See the Guide to the BIND/Hesiod Service for more infor-
       mation.

Return Values
       Null pointer (0) returned on EOF or error.

Files
See Also
       getlogin(3), passwd(5), svc.conf(5)
       Guide to the BIND/Hesiod Service
       Guide to the Yellow Pages Service

																       getpwent(3)

Check Out this Related Man Page

GETPWENT(3)						     Library Functions Manual						       GETPWENT(3)

NAME
getpwent, getpwnam, getpwuid, setpwent, endpwent, setpwfile - password file routines SYNOPSIS
#include <pwd.h> struct passwd *getpwent(void) struct passwd *getpwnam(const char *name) struct passwd *getpwuid(uid_t uid) int setpwent(void) void endpwent(void) void setpwfile(const char *file) DESCRIPTION
These functions are used to obtain information from the password file. They return this information in a struct passwd as defined by <pwd.h>: struct passwd { char *pw_name; /* login name */ char *pw_passwd; /* encrypted password */ uid_t pw_uid; /* numeric user id */ gid_t pw_gid; /* numeric group id */ char *pw_gecos; /* user full name and other info */ char *pw_dir; /* user's home directory */ char *pw_shell; /* name of the user's shell */ }; Getpwent() reads the password file entry by entry. Getpwnam() scans the entire password file for the user with the given name. Getpwuid() looks for the first user with the given uid. The setpwent() and endpwent() functions are used to open and later close the password file. With setpwfile() one can specify the file to read other than the normal password file. This only sets the name, the next setpwent() call will open the file. Do not touch the file name while it is active. Use setpwfile(NULL) to revert back to the normal password file. The usual way to scan the password file is (error checking omitted): setpwent(); while ((pw = getpwent()) != NULL) if (appropriate_test(pw)) break; endpwent(); The pw variable contains the entry that is wanted if non-NULL. The getpwnam() and getpwuid() functions are implemented as in this example, with error checking of course. Getpwent() calls setpwent() if this has not yet been done. Setpwent() first calls endpwent() if the password file is still open. (Other implementations may simply rewind the file.) FILES
/etc/passwd The password file database. SEE ALSO
cuserid(3), getlogin(3), getgrent(3), passwd(5). DIAGNOSTICS
Setpwent() has the same return value and error codes as the open(2) call it uses to open the password file. The getxxx() functions return NULL on end of file, entry not found, or error. You can set errno to zero before the call and check it after. NOTES
All getxxx() routines return a pointer to static storage that is overwritten in each call. Only getpwnam() and getpwuid() are defined by POSIX. The _MINIX_SOURCE macro must be defined before including <pwd.h> to make the other functions visible. The pw_passwd and pw_gecos fields are also not defined by POSIX, but are always visible. Portable code cannot reliably detect errors by setting errno to zero. Under Minix it is better to make a getpwent() scan if you need to look up several user-id's or names, but portable code had better use several getpwuid() or getpwnam() calls. The getpwent() is usually available on other systems, but may be very expensive. AUTHOR
Kees J. Bot (kjb@cs.vu.nl) GETPWENT(3)
Man Page