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

#include <pwd.h>

struct passwd *getpwuid(uid)
int uid;

struct passwd *getpwnam(name)
const char *name;

struct passwd *getpwent()

void setpwent()

void endpwent()

void setpwfile(name)
const char *name;

Getpwent, getpwuid and getpwnam each return a pointer to an object
with the following structure containing the broken-out fields of a
line in the password file.

struct passwd { /* see getpwent(3) */
char *pw_name;
char *pw_passwd;
int pw_uid;
int 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 passwd(5).

Searching of the password file is done using the ndbm database
access routines. Setpwent opens the database; endpwent closes it.
Getpwuid and getpwnam search the database (opening it if necessary)
for a matching uid or name. EOF is returned if there is no entry.

For programs wishing to read the entire database, getpwent reads
the next line (opening the database if necessary). In addition to
opening the database, setpwent can be used to make getpwent begin
its search from the beginning of the database.

Setpwfile changes the default password file to name thus allowing
alternate password files to be used. Note that it does not close
the previous file. If this is desired, endpwent should be called
prior to it.


getlogin(3), getgrent(3), passwd(5)

The routines getpwent, getpwuid, and getpwnam, return a null
pointer (0) on EOF or error.

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