Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1645094
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类: LINUX

2009-03-27 08:46:51

who 命令实现

用户登陆信息放在/var/run/utmp , 存储的数据格式为:struct utmp ,该结构体的说明在 /usr/include /bits/utmp中找到,存储的信息比较丰富,这里只阐述who命令的实现,对与utmp数据结构元素的意义不做详细的描述。

 

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <utmp.h>

struct utmp utmp_buf;

int main(void)
{
 int fd;
 size_t who_state=1;
// return 0;

 fd=open("/var/run/utmp",O_RDONLY);
 while(who_state)
 {
  who_state=read(fd,&utmp_buf,sizeof(struct utmp));
  printf("ut_type: %d ut_line: %s ut_id: %d ",utmp_buf.ut_type,utmp_buf.ut_line,utmp_buf.ut_id );
  printf("ut_user: %s ut_host: %s ut_session:%d \n",utmp_buf.ut_user,utmp_buf.ut_host,utmp_buf.ut_session);
    // printf(utmp_buf.ut_user);

  printf("\n");
 
 }
 return 0;
}

 

阅读(839) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~