常见系统数据文件
下表列出了常见的系统数据文件及其查找函数。
以/etc/passwd文件为例,读取数据的程序基本框架如下:
void get_pw_entry()
{
struct passwd *ptr;
setpwent();
while ((ptr = getpwent()) != 0) {
……
}
endpwent();
return ptr;
}
- 每个数据文件都提供了一个get方法返回文件下一个记录项。
- set方法充值当前位置到文件开始处。
- end方法关闭数据文件。
- 表格中的getpwnam和getpwuid为查找方法,根据名称或ID查找相应记录项。
passwd文件详解
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
如上所示:
- 每一列含义依次为:username:password:User ID:Group ID:comment:home directory:shell
- 第二列密码被加密,存储在/etc/shadow中。
- 最后一列登陆Shell代表登陆用户登陆后执行的命令,一般用户都是启动shell进程,一些特殊账号使用nologin可以阻止该账号正常登陆。
- 第四列是用户登陆后所属组ID。用户可以属于多个组,用户登陆后,login程序会调用initgroups函数,读取/etc/group文件,替用户初始化附加组ID。
- 使用finger命令打印用户信息,管理员使用vipw命令编辑passwd文件(比直接编辑文件更安全)。
时间和日期函数
如图所示:
- time_t以秒为单位,为UTC时间(注意time函数不要和times函数混淆)。
- timeval结构存储了毫秒级别的日历时间。
- 如果系统支持,timespec结构中tv_nsec字段精度为纳秒。
- tm结构中包含秒、分、小时、日期等字段,可以是格林尼治时间(gmtime函数),也可以是本地时间(localtime函数)。
- strXXXX系列方法用于格式化时间字符串
其他重要数据文件和函数
- 登录账户:utmp文件存储当前登录所有用户(who命令访问),wtmp记录用户登录和退出(last命令访问)
- 系统标识:utsname结构(uname命令访问)中包含内核名、主机名(gethostname命令访问)、发行版本和体系结构等
读书笔记-APUE第三版-(6)系统数据文件和信息,布布扣,bubuko.com
读书笔记-APUE第三版-(6)系统数据文件和信息
原文:http://blog.csdn.net/idontwantobe/article/details/25075457