linux编程—who命令编写
来源:互联网 发布:高中信息技术编程解答 编辑:程序博客网 时间:2024/05/31 19:42
来源:
《unix/linux编程实践教程》
原理:
who通过读取存放登录用户文件的信息来实现
学习点
1.open,read,close的使用
2.Unix存储时间的方式
版本一
#include <stdio.h>#include <utmp.h>#include <fcnt1.h>#include <unistd.h>#define SHOWHOSTint main(){ struct utmp current_record; int utmpfd; int reclen = sizeof(current_record); if ((utmpfd = open(UTMP_FILE,O_RDONLY)) == -1) { perror(UTMP_FILE); exit(1); } while(read(utmpfd,¤t_record,reclen)==reclen) show_info(¤t_record); close(utmpfd); return 0;}show_info(struct utmp *utbufp){ printf("%-8.8s",utbufp->ut_name); printf(" "); printf("%-8.8s",utbufp->ut_line); printf(" "); printf("%10ld",utbufp->ut_time); printf(" "); #ifdef SHOWHOST printf("(%s)",utbufp ->ut_host); #endif printf("\n");}
版本二
#include <stdio.h>#include <utmp.h>#include <fcntl.h>#include <unistd.h>#include <time.h>#define SHOWHOSTvoid showtime(long);void show_info(struct utmp *utbufp);int main(){ struct utmp current_record; int utmpfd; int reclen = sizeof(current_record); if ((utmpfd = open(UTMP_FILE,O_RDONLY)) == -1) { perror(UTMP_FILE); exit(1); } while(read(utmpfd,¤t_record,reclen)==reclen) show_info(¤t_record); close(utmpfd); return 0;}show_info(struct utmp *utbufp){ if (utbufp->ut_type != USER_PROCESS) { return; } printf("%-8.8s",utbufp->ut_name); printf(" "); printf("%-8.8s",utbufp->ut_line); printf(" "); showtime(utbufp->ut_time); #ifdef SHOWHOST if (utbufp->ut_host[0]!='\0') { printf("(%s)",utbufp ->ut_host); } #endif printf("\n");}void showtime(long timeval){ char *cp; cp = ctime(&timeval); printf("%12.12s", cp+4);}
运行截图:
0 0
- linux编程—who命令编写
- 【Unix/Linux编程实践】从零做起:编写who命令
- 《unix/linux编程实践教程》学习笔记:第二章 编写who,cp命令
- linux编程who命令的简单实现
- unix/linux编程实践教程:who命令
- 自己编写who命令
- who命令的编写
- 编写who命令
- 编写who命令
- Linux命令——who
- 编写who命令--从Linux中学习Linux
- Linux下 使用C语言编写who命令
- 编写自己的who命令
- linux who命令
- Linux who 命令
- linux who命令
- Linux who命令
- 初学Linux命令--who
- Robot Framework环境搭建
- 一种简单粗暴的数据层网络缓存(一)
- Android开发-RecyclerView-AndroidStudio(一)初体验对比ListView
- angularjs-表单与验证-表单的嵌套及其声明
- 搞懂树状数组
- linux编程—who命令编写
- 深度卷积神经网络的14种设计模式
- Svn右键不出现svn checkout 图标
- spring连接access数据库
- 大型分布式网站架构技术总结
- Beetl学习总结(4)——Web集成
- hadoop环境搭建
- 在Tomcat中单独发布网页的三种方法
- 使用USART接口进行STM32F0的在线升级(AN4065)-基于标准库的STM32F070的IAP移植手记