深入探索用户与组数据库读取及数组遍历
在编程中,获取用户和组的相关信息是一项常见需求。同时,处理多维数组也经常会遇到。下面将详细介绍如何读取用户与组数据库,以及如何遍历多维数组。
读取用户数据库
PROCINFO 数组可提供当前用户的真实和有效用户及组 ID 号,但这些数字对普通用户来说信息价值不大。为了获取与用户和组 ID 号相关的有用信息,需要一套从用户数据库中检索信息的函数。
POSIX 标准未定义存储用户信息的文件,而是提供了 <pwd.h> 头文件和几个 C 语言子例程来获取用户信息,其中主要函数是 getpwent() 用于获取密码条目。虽然 awk 程序可直接读取 /etc/passwd 文件,但该文件可能不包含系统所有用户的完整信息。因此,需要编写一个调用 getpwent() 的 C 程序来生成用户数据库的可读完整版本。
以下是一个名为 pwcat 的 C 程序,用于输出密码数据库:
/*
* pwcat.c
*
* Generate a printable version of the password database.
*/
#include <stdio.h>
#include <pwd.h>
int
main(int argc, char **argv)
{
struct passwd *p;
while ((p = getpwent()) != NULL
超级会员免费看
订阅专栏 解锁全文
2772

被折叠的 条评论
为什么被折叠?



