GETPW - Linux手册页

时间:2019-08-20 18:00:30  来源:igfitidea点击:

Linux程序员手册 第3部分
更新日期: 2017-09-15

名称

getpw-重建密码行输入

语法

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

int getpw(uid_t uid, char *buf);

说明

getpw()函数为缓冲区buf中的给定用户ID uid重建密码行条目。返回的缓冲区包含一行格式

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

passwd结构的定义如下:

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 */
};

有关此结构的字段的更多信息,请参见passwd(5)。

返回值

getpw()函数成功返回0;否则返回0。如果出错,则返回-1,并将errno设置为指示错误。

如果在密码数据库中找不到uid,则getpw()返回-1,将errno设置为0,并使buf保持不变。

错误说明

0or ENOENT
没有用户对应于uid。
EINVAL
buf为NULL。
ENOMEM
内存不足,无法分配passwd结构。

文件

/etc/passwd
密码数据库文件

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
getpw()Thread safetyMT-Safe locale

遵循规范

SVr2。

BUGS

getpw()函数很危险,因为它可能会溢出提供的缓冲区buf。 getpwuid(3)已将其淘汰。

另外参见

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

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/