news 2026/6/23 18:54:24

26、深入探索用户与组数据库读取及数组遍历

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
26、深入探索用户与组数据库读取及数组遍历

深入探索用户与组数据库读取及数组遍历

在编程中,获取用户和组的相关信息是一项常见需求。同时,处理多维数组也经常会遇到。下面将详细介绍如何读取用户与组数据库,以及如何遍历多维数组。

读取用户数据库

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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 20:45:18

28、实用 awk 程序集:功能与实现

实用 awk 程序集:功能与实现 在文本处理和自动化任务中,awk 是一个强大的工具。下面将介绍多个实用的 awk 程序,涵盖文件分割、输出复制、文本去重、计数、查找重复单词、闹钟设置和字符转写等功能。 1. 文件分割程序 该程序的主要目的是将一个大文件分割成多个小文件。它…

作者头像 李华
网站建设 2026/6/23 14:56:18

36、深入探索gawk扩展开发:许可、通信与API详解

深入探索gawk扩展开发:许可、通信与API详解 1. 扩展许可 在开发gawk的动态扩展时,必须遵循与GNU GPL兼容的许可协议来进行分发。为了让gawk知晓扩展已获得正确许可,扩展需要定义全局符号 plugin_is_GPL_compatible 。若该符号不存在,gawk在尝试加载扩展时会发出致命错误…

作者头像 李华
网站建设 2026/6/23 14:55:34

37、深入探索gawk扩展开发:输入解析、输出包装与更多实用功能

深入探索gawk扩展开发:输入解析、输出包装与更多实用功能 1. 输入解析器的选择与注册 在开发gawk扩展时,你必须在返回记录的函数和返回原始数据的函数之间做出选择。特别要注意的是,如果你提供了一个获取记录的函数,gawk会调用该函数,而不会再调用原始读取函数。 gawk自…

作者头像 李华
网站建设 2026/6/23 12:39:15

4、UNIX系统中C语言使用之文件与目录详解

UNIX系统中C语言使用之文件与目录详解 1. 目录基础 在UNIX系统里,目录是文件系统的重要组成部分。每个目录至少有两个特殊条目: - “.” :指代当前目录。程序可通过打开 “.” 文件来读取当前目录,无需知晓其具体名称。 - “..” :表示当前目录的父目录。程序能通过不…

作者头像 李华
网站建设 2026/6/23 14:55:56

8、时间处理与信号处理全解析

时间处理与信号处理全解析 1. 时间表示与转换 在进行时间处理时,我们首先会接触到 tm 结构体,它的定义如下: struct tm {int tm_sec; /* seconds 0-59 */int tm_min; /* minutes 0-59 */int tm_hour; /* hours 0-23 …

作者头像 李华
网站建设 2026/6/23 8:16:06

12、UNIX系统中的进程间通信详解

UNIX系统中的进程间通信详解 1. 进程间通信概述 在UNIX系统里,进程间通信(IPC)机制能让两个或更多不同的进程相互交流。之前提到过一种IPC形式——管道,它允许两个相关进程(其中一个必须是另一个的子进程)通过读写系统调用,在双向字节流上进行通信。 较新的UNIX版本(…

作者头像 李华