Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14905
  • 博文数量: 4
  • 博客积分: 160
  • 博客等级: 入伍新兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-10 19:01
文章分类
文章存档

2008年(4)

我的朋友
最近访客

分类: LINUX

2008-04-10 19:16:34

linux下的whoami命令会显示当前的用户是谁,也就是显示自己的用户名

开始我一直想从utmp文件入手,但是总不知道怎么确定自己,

后来我去群里问了,他们说每个进程都有用户ID,而用户ID可以通过geteuid系统函数

获得,有了ID就好办了,下面是怎么将他转化成一个用户名,,用utmp?没有uid这个数

据,,后来知道是查找/etc/passwd这个文件,,自己写查找代码很麻烦,还好有个系统

调用可以解决这个问题,它帮我们查找passwd文件,我们只要给出id就可以了

struct passwd* getpwuid(uit_t id)

这样,实现起来就超 easy了

代码如下:

#include   
#include   
#include   
#include   

int
main()
{
     uid_t id;
     struct passwd* pbuf;
     id=geteuid();
     pbuf=getpwuid(id);
   printf("%s\n",pbuf->pw_name);
     return 0;
}

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