红联Linux门户
Linux帮助

实现linux的whoami命令

发布时间:2008-04-01 01:37:01来源:红联作者:PostCards
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;
}
文章评论

共有 0 条评论