查看文章
 
实现linux的whoami命令
2008-03-30 18:30

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

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

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

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

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

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

struct passwd* getpwuid(uit_t id)

这样,实现起来就超 easy了

代码如下:

#include    <unistd.h>
#include    <pwd.h>
#include    <sys/types.h>
#include    <stdio.h>

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


类别:Linux||添加到搜藏 |分享到i贴吧|浏览(631)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu