Chinaunix首页 | 论坛 | 博客
  • 博客访问: 272777
  • 博文数量: 42
  • 博客积分: 2718
  • 博客等级: 少校
  • 技术积分: 467
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-19 10:23
个人简介

青 田 酒 店 服 务 小 姐 价 格 186-6531-7773

文章分类

全部博文(42)

文章存档

2011年(36)

2010年(6)

分类: LINUX

2011-06-12 11:15:47

在linux系统上,应用系统会提供好多自定义API给别的登录用户来执行,为了保证系统的操作安全,有必要记录下每个登陆进来用户的信息,用如下方法能够较精确的提取这类信息:
  1. #include<stdio.h>
  2. #include<utmp.h>
  3. int main()
  4. {
  5.         char *s,*c;
  6.         struct utmp *u;
  7.         int i;
  8.         char sztime[20] = {0};
  9.        c=getlogin();
  10.        setutent();
  11.        u=getutent();
  12.        while(u != NULL)
  13.        {
  14.           if(u->ut_type==7 && strcmp(u->ut_user,c)==0)
  15.           {
  16.                printf("%-12s",u->ut_user);
  17.                printf("%-9s",u->ut_line);
  18.                s=ctime(&u->ut_time);
  19.                sprintf (sztime, s);
  20.                printf("(%s)\t",u->ut_host);
  21.                printf ("%s", sztime);
  22.           }
  23.           u=getutent();
  24.        }
  25. }

 

 

  1. $ gcc test.c -o test_app

  2. $./test_app
  3. cme pts/0 (192.168.1.103) Fri Jun 10 19:36:18 2011

 

 

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