Linux程序员手册 第3部分
更新日期: 2017-09-15
名称
getpwent,setpwent,endpwent-获取密码文件条目
错误说明
- EINTR
- 捕获到信号;参见signal(7)。
- EIO
- I / O错误。
- EMFILE
- 已达到打开文件描述符数量的每个进程限制。
- ENFILE
- 已达到系统范围内打开文件总数的限制。
- ENOMEM
- 内存不足,无法分配passwd结构。
- ERANGE
- 提供的缓冲区空间不足。
语法
#include <sys/types.h> #include <pwd.h> struct passwd *getpwent(void); void setpwent(void); void endpwent(void);
glibc的功能测试宏要求(请参阅feature_test_macros(7)):
getpwent(),setpwent(),endpwent():
- _XOPEN_SOURCE>= 500 || / * Glibc自2.19起:* / -_DEFAULT_SOURCE || / * Glibc版本
属性
有关本节中使用的术语的说明,请参见attribute(7)。
Interface | Attribute | Value |
getpwent() | Thread safety | MT-Unsafe race:pwent race:pwentbuf locale |
setpwent(), endpwent() | Thread safety | MT-Unsafe race:pwent locale |
在上表中,race中的pwent:pwent表示如果在程序的不同线程中并行使用setpwent(),getpwent()或endpwent()函数中的任何一个,则可能发生数据争用。
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。
说明
getpwent()函数返回一个指向包含密码数据库中记录的中断字段的结构的指针(例如,本地密码文件/ etc / passwd,NIS和LDAP)。第一次调用getpwent()时,它将返回第一个条目;此后,它将返回连续的条目。
setpwent()函数后退到密码数据库的开头。
执行完所有处理后,使用endpwent()函数关闭密码数据库。
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)。
遵循规范
POSIX.1-2001,POSIX.1-2008,SVr4、4.3BSD。在POSIX中未指定pw_gecos字段,但是在大多数实现中都存在。
文件
- /etc/passwd
- 本地密码数据库文件
日期:2019-08-20 18:00:10 来源:oir作者:oir