分类: 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;
}