Linux查看utmp文件,linuxc操作utmp和wtmp文件接口
linuxc操作utmp和wtmp文件接口
/var/run/utmp 保存当前在本系统中的用户信息
/var/log/wtmp 保存登陆过本系统的用户信息
他们保存的信息是基于结构体 struct utmp 的(/usr/include/bits/utmp.h)
utmp 结构体定义如下:
struct utmp
{
short int ut_type; //登录类型
pid_t ut_pid; //login 进程的pid
char ut_line[UT_LINESIZE]; //登录装置名, 省略了"/dev/"
char ut_id[4]; //Inittab ID
char ut_user[UT_NAMESIZE]; //登录账号
char ut_host[UT_HOSTSIZE]; //登录账号的远程主机名称
struxt exit_status ut_exit; //当类型为DEAD_PROCESS 时进程的结束状态
long int ut_session; //Sessioc ID
struct timeval ut_tv; //时间记录
int32_t ut_addr_v6[4]; //远程主机的网络地址
char __unused[20]; //保留未使用
};
ut_type 有以下几种类型:
EMPTY:此为空的记录.
RUN_LVL:记录系统run-level 的改变
BOOT_TIME:记录系统开机时间
NEW_TIME:记录系统时间改变后的时间
OLD_TINE:记录当改变系统时间时的时间.
INIT_PROCESS:记录一个由init 衍生出来的进程.
LOGIN_PROCESS:记录 login 进程.
USER_PROCESS:记录一般进程.
DEAD_PROCESS:记录一结束的进程.
ACCOUNTING:目前尚未使用.
exit_status 结构定义:
struct exit_status
{
short int e_termination; //进程结束状态
short int e_exit; //进程退出状态
};
struct timeval 结构定义:
struct timeval{
time_t tv_sec; /* 秒数 */
suseconds_t tv_usec; /* 微秒 */
};
相关常数定义如下:
UT_LINESIZE 32
UT_NAMESIZE 32
UT_HOSTSIZE 256
读取和修改这些文件的函数如下:
#include struct utmp *getutent(void);
//从 utmp 文件中,每次读取一个 struct tump 结构体。读完文件或者失败返回NULL
//附加说明:getutent()在第一次调用时会打开utmp 文件, 读取数据完毕后可使用endutent()来关闭该utmp文件
struct utmp *getutid(struct utmp *ut);
//从 utmp 文件中的读写位置逐一往后搜索参数 ut 指定的记录
//1、如果ut->ut_type 为RUN_LVL, BOOT_TIME, NEW_TIME, OLD_TIME 其中之一则查找与ut->ut_type 相符的记录;
//2、若ut->ut_type为INIT_PROCESS, LOGIN_PROCESS, USER_PROCESS 或DEAD_PROCESS 其中之一, 则查找与ut->ut_id相符的记录.
struct utmp *getutline(struct utmp *ut);
//从utmp 文件的读写位置逐一往后搜索ut_type 为USER_PROCESS 或LOGIN_PROCESS 的记录, 而且ut_line 和ut->ut_line 相符.
struct utmp *pututline(struct utmp *ut);
//将一个struct utmp结构体写进文件utmp中
void setutent(void);
//打开文件utmp,并且将文件指针指向文件的最开始。
void endutent(void);
//关闭文件utmp
int utmpname(const char *file);
//设定utmp文件所在的路径,默认的路径为宏 _PATH_UTMP,该宏定义在/usr/include/paths.h中
http://www.dengb.com/Linuxjc/1035702.htmlwww.dengb.comtruehttp://www.dengb.com/Linuxjc/1035702.htmlTechArticlelinuxc操作utmp和wtmp文件接口 /var/run/utmp 保存当前在本系统中的用户信息 /var/log/wtmp 保存登陆过本系统的用户信息 他们保存的信息是基于结构...
Linux查看utmp文件,linuxc操作utmp和wtmp文件接口相关推荐
- linux 查看磁盘空间 拷贝不同目录下的文件
linux 查看磁盘空间 df -h 拷贝不同目录下的文件 cp -rf 目录1 目录2 目录1是需要拷贝的文件所在目录 目录2是需要存放的位置 cp -rf /data/ws/m2e2/ ././表 ...
- linux查看网卡连接哪个cpu,Linux查看CPU/内存/网卡/操作系统信息
测试机器的硬件信息: 查看CPU信息(型号) # cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 8 Intel(R) Xeon(R) CP ...
- linux查看redis命令,linux查看redis版本怎么操作?具体示例
对于有相关开发经验的朋友来说,linux作为一套免费使用和自由传播的类UNIX操作系统,相信你们肯定是比较亲切的,那么今天我们一起了解的是,怎么用linux查看redis版本号? 工具/原料:linu ...
- 属于python文件的操作有_Python的文件操作
1.初始文件操作 1.使用python读写文件使用open()函数获取文件句柄,就可以操作文件了,根据打开方式不同能执行的操作也不同. 打开方式有: r.w.a.r+.w+.a+.rb.wb.ab.r ...
- python对文件的操作模式_python对文件的操作
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 2.返回指定目录下的所有文件 ...
- Git 删除 GitHub仓库的文件——详细操作 githua如何删除文件
Git 删除 GitHub仓库的文件--详细操作_没有余地没有余地的博客-CSDN博客_github删除仓库文件 目录 一.删除已有Github仓库 二.删除Github中的某个文件或文件夹 如果没有 ...
- 文件的操作,如何做文件上传
上传就是本地的文件,比如说一张图片放到服务器上 先做一个form表单 <form action="shangchuan.php" method="post" ...
- linux查看gc日志,将GC日志输出到文件
将GC日志输出到文件:不同JDK设置的参数不同,参考JDK官方文档 SUN:-Xloggc:filename (例如:-Xloggc:D:/gc.log) linux windows IBM:-Xv ...
- linux 遍历文件及文件夹,linux文件夹操作及递归遍历文件夹(示例代码)
文件夹相关函数介绍 //mkdir 函数创建文件夹 #include #include int mkdir(const char *pathname, mode_t mode); //rmdir 删除 ...
最新文章
- mysql 函数返回表格_mysql 数据分析如何实现日报、周报、月报和年报?
- 一笔画 (25 分)
- 【Cisco NP】EIGRP的基本配置
- 网站增改不要只想着收益更应该思考原有的损失
- linux内核tor03,Linux内核x86架构引导协议4(翻译)
- Linux下的命令总结笔记(一)
- C#中lock死锁实例教程
- BugKuCTF WEB 域名解析
- layui流加载及传参
- java 反射初探(1)
- java 流 存放在哪_java IO流学习
- 数据库 linux 编译,部署mariadb数据库到linux(源码编译安装)
- 热流体动压润滑matlab_设备润滑知识点(下午见)
- 驱动级的自动按键_太牛了!业余单片机爱好者用DS3231制作自动亮度的4位数码管时钟...
- php vue是什么,vue.js是什么软件
- 【工赋开发者社区】产业互联网和工业互联网的区别
- 缺少比较器,运放来救场!(运放当做比较器电路记录)
- 111-GAMP处理流程
- 知到计算机应用基础见面课答案,知到计算机应用基础(湖南环境生物职业技术学院)见面课答案...
- 简单架设Jabber 局域网即时通讯服务器
热门文章
- 阿里云服务器怎么安装docker
- 多重背包2[二进制位优化]
- redis shutdown (error) ERR Errors trying to SHUTDOWN. Check logs.
- mysql面试100题及答案_PHP面试100题汇总
- 园林系统优秀党员推荐材料_昆山合纵生态科技有限公司——园林废弃物循环利用“昆山合纵模式”的探索和实践者...
- linux赋予文件夹所有权限_linux – 如何将某些用户权限仅授予子文件夹
- Android中的基础控件CheckBox、RadioButton、ToggleButton、SeekBar
- C语言记录元音字母的位置,算法训练 确定元音字母位置
- python面试装饰器_Python测开面试题之装饰器
- C语言整数加法器,【菜鸟解析】C++大数加法器的实现