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