setpwdb 或 endpwdb 子例程
用途
打开或关闭认证数据库。
库
安全性库 (libc.a)
语法
描述
这些函数用于打开和关闭对认证数据库的访问。 调用 getuserpw 或 普特塞普 子例程的程序应该调用 塞普韦德 子例程以打开数据库,并调用 恩德普韦德 子例程以关闭数据库。
setpwdb 子例程以指定方式打开认证数据库 (如果尚未打开)。 打开计数增加了 1。
endpwdb 子例程将打开计数减少 1 ,并在此计数下降到 0 时关闭认证数据库。 对个别数据项的后续引用可能会导致内存访问违例。 endpwdb 子例程还释放由 getuserpw , putuserpw 或 putuserpwhist 子例程分配的空间。 出于安全原因,释放空间将清除密码字段。 任何未落实的已更改数据都将丢失。
参数
| 项 | 描述 |
|---|---|
| 方式 | 指定打开方式。 此参数可能包含 usersec.h 文件中定义的以下一个或多个值:
|
返回值
setpwdb 和 endpwdb 子例程返回值 0 以指示成功。 否则,返回值为-1,并设置errno全局变量来指示错误。
错误代码
如果以下情况成立,那么 setpwdb 和 endpwdb 子例程将失败:
| 项 | 描述 |
|---|---|
| EACCES | 数据请求的访问许可权被拒绝。 |
这两个函数都从其他子例程返回错误。
安全性
访问控制: 调用进程必须具有对认证数据的访问权。
访问的文件:
| 方式 | 文件 |
|---|---|
| rw | /etc/security/passwd |
| rw | /etc/passwd |