getpw(3)

getpw3

Reconstruct password line entry

Usage

#define _GNU_SOURCE             /* See feature_test_macros(7) */
#include <sys/types.h>
#include <pwd.h>

[[deprecated]] int getpw(uid_t uid, char *buf);

Library

Standard C library (libc, -lc)

Overview

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

InterfaceAttributeValue
getpw()Thread safetyMT-Safe locale

Releases

19 releases since Debian 1.1 (Buzz); the text changed 15 times.

  1. 1.1
  2. 1.2–2.1
  3. 2.2
  4. 3.0
  5. 3.1
  6. 4.0
  7. 5.0
  8. 6.0
  9. 7
  10. 8
  11. 9
  12. 10
  13. 11
  14. 12
  15. 13
  16. Arch

Standards

None.

History

SVr2.

Bugs

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

From man-pages 6.19-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.