Manpages - getpw.3

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

ATTRIBUTES

For an explanation of the terms used in this section, see *attributes*(7).

Interface Attribute Value
*getpw*() Thread safety MT-Safe locale

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 5.13 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 https://www.kernel.org/doc/man-pages/.

Author: dt

Created: 2022-02-20 Sun 16:09