频道栏目
首页 > 资讯 > 其他 > 正文

《Unix环境高级编程》 总结 (四)

17-06-26        来源:[db:作者]  
收藏   我要投稿
系《Unix环境高级编程》 总结 (四),统数据文件和信息 (第六章)。
1、口令文件
目录:/etc/passwd,如下:
用户名:密码:UID:GID:注释字段:初始工作目录:初始shell
shell为空,则采用默认shell,常为/bin/sh
用户squid的shell为/dev/null,表示不让任务人以squid的名义登录系统;也可设置shell为/bin/false或者/bin/true
nobody表示人人都也登录系统,但其UID和GID没任务特权,只能读写人人都也读写的文件
管理员可通过vipw来编辑口令文件(串行化修改,保证与其它文件一致)
根据用户名或者UID查找用户其它信息
查找整个口令文件信息
如下:
#include
#include
#include
struct passwd *
getpwnam(const char *name)
{
struct passwd *ptr;
setpwent(); // 确保定位到文件开始处
while ((ptr = getpwent()) != NULL) // 得到下一个
if (strcmp(name, ptr->pw_name) == 0)
break; /* found a match */
endpwent(); // 结束
return(ptr); /* ptr is NULL if no match found */
}
2、阴影文件
存放用户加密后的密码,/etc/shadow
存取阴影文件相关函数:
3、组文件
目录:/etc/group
相关函数:
根据名称或者GID查询:
查询全部:
4、附属组文件
一个用户可属于多个组,可多至16个,相关函数:
getgroups:得到进程所属用户的附属组,最多得到gidsetsize个,组ID存放在grouplist中,返回组ID数量
5、其它数据文件
6、登录账户记录
utmp(/var/run/utmp):当前登录到系统的用户
wtmp(/var/log/wtmp):记录各登录、注销事件
7、系统标识
返回主机和操作系统相关的信息,如下:
可用命令uname打印相关信息。
得到主机名,如下:
其中namelen的最大值为HOST_NAME_MAX,对应hostname命令。
8、时间和日期
采用UTC时间(1970-1-100:00:00),返回当前时间和日期:
如果calptr非空,则时间值也保存在calptr中。
返回不同系统时间,如下:
时间类型ID如下:
当clock_id为CLOCK_REALTIME时,同time,但其精度更高。
要指定精度,如下:
如果要求精度为1毫秒,则tsp中tv_sec=0,tv_nsec=1000000。
要设置特定时钟,如下:
需要权限,有的时针不能设置。
也可用gettimeofday,但该函数已弃用,其中tzp一般为NULL
其中虚线与时区有关。
将日历时间转换为分解时间,如下:
localtime返回本地时间(与本地时区和夏令时相关)
tm_sec可以表示闰秒;tm_mday从1开始;如果为夏令时,则tm_isdst大于0,不为夏令时,则tm_isdst等于0,此信息不可用,则tm_isdst小于0
从分解时间到日历时间,如下:
分解时间格式化,如下:
其中strftime_l可以指定时区。tmptr为要格式化的分解时间,format同printf,支持的格式如下:
从字符串中得到分解时间,如下:
相关TAG标签
上一篇:多线程文件下载的服务器端及客户端
下一篇:vue脚手架的搭建
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站