[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    GETPW(3) manual page Table of Contents

Name

getpw - reconstruct password line entry

Synopsis


#define _GNU_SOURCE             /* See feature_test_macros(7) */#include
<sys/types.h>#include <pwd.h>
int getpw(uid_t uid, char *buf);

Description

The getpw() function reconstructs the password line entry for the given user ID uid in the buffer buf. The returned buffer contains a line of format

name:passwd:uid:gid:gecos:dir:shell

The passwd structure is defined in <pwd.h> as follows:


struct passwd {
    char   *pw_name;       /* username */
    char   *pw_passwd;     /* user password */
    uid_t   pw_uid;        /* user ID */
    gid_t   pw_gid;        /* group ID */
    char   *pw_gecos;      /* user information */
    char   *pw_dir;        /* home directory */
    char   *pw_shell;      /* shell program */
};

For more information about the fields of this structure, see passwd(5) .

Return Value

The getpw() function returns 0 on success; on error, it returns -1, and errno is set to indicate the error.

If uid is not found in the password database, getpw() returns -1, sets errno to 0, and leaves buf unchanged.

Errors

0 or ENOENT
No user corresponding to uid.
EINVAL
buf is NULL.
ENOMEM
Insufficient memory to allocate passwd structure.

Files

/etc/passwd
password database file

Conforming to

SVr2.

Bugs

The getpw() function is dangerous as it may overflow the provided buffer buf. It is obsoleted by getpwuid(3) .

See Also

endpwent(3) , fgetpwent(3) , getpwent(3) , getpwnam(3) , getpwuid(3) , putpwent(3) , setpwent(3) , passwd(5)

Colophon

This page is part of release 3.78 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.


Table of Contents