setpwdb 或 endpwdb 子例程

用途

打开或关闭认证数据库。

安全性库 (libc.a)

语法

#include <userpw.h>
int setpwdb ( Mode)
int Mode;
int endpwdb ( )

描述

这些函数用于打开和关闭对认证数据库的访问。 调用 getuserpw普特塞普 子例程的程序应该调用 塞普韦德 子例程以打开数据库,并调用 恩德普韦德 子例程以关闭数据库。

setpwdb 子例程以指定方式打开认证数据库 (如果尚未打开)。 打开计数增加了 1。

endpwdb 子例程将打开计数减少 1 ,并在此计数下降到 0 时关闭认证数据库。 对个别数据项的后续引用可能会导致内存访问违例。 endpwdb 子例程还释放由 getuserpw , putuserpw putuserpwhist 子例程分配的空间。 出于安全原因,释放空间将清除密码字段。 任何未落实的已更改数据都将丢失。

参数

描述
方式 指定打开方式。 此参数可能包含 usersec.h 文件中定义的以下一个或多个值:
S_READ
指定读访问权。
S_WRITE
指定更新访问权。

返回值

setpwdbendpwdb 子例程返回值 0 以指示成功。 否则,返回值为-1,并设置errno全局变量来指示错误。

错误代码

如果以下情况成立,那么 setpwdbendpwdb 子例程将失败:

描述
EACCES 数据请求的访问许可权被拒绝。

这两个函数都从其他子例程返回错误。

安全性

访问控制: 调用进程必须具有对认证数据的访问权。

访问的文件:

方式 文件
rw /etc/security/passwd
rw /etc/passwd