linux下getlogin()返回为空?

殇尘埃 2017-07-04 10:36:01
u[b]bantu版本为16.04.2,执行getlogin()函数返回值为空值?请问这是怎么回事?
程序如下:

结果如下:
...全文
587 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
殇尘埃 2017-07-06
  • 打赏
  • 举报
回复
引用 2 楼 sun_li3 的回复:
root
user name is root
user dir is /root 
[root@localhost test]# cat getlogin.c 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>

int main(int argc,char* argv[])
{
	char * login = getlogin();
	printf("%s\n",login);
	struct passwd *ps = getpwnam(login);
	printf("user name is %s\n",ps->pw_name);
	printf("user dir is %s \n",ps->pw_dir);
	return 0;


	return 0;
}
centos6.5 没问题 Linux localhost 2.6.32-431.el6.x86_64
那您的意思是这个函数本身没问题,可能是ubantu的问题,或者是我安装时的问题?
sun_li3 2017-07-05
  • 打赏
  • 举报
回复
root
user name is root
user dir is /root
[root@localhost test]# cat getlogin.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>

int main(int argc,char* argv[])
{
char * login = getlogin();
printf("%s\n",login);
struct passwd *ps = getpwnam(login);
printf("user name is %s\n",ps->pw_name);
printf("user dir is %s \n",ps->pw_dir);
return 0;


return 0;
}


centos6.5 没问题 Linux localhost 2.6.32-431.el6.x86_64
殇尘埃 2017-07-04
  • 打赏
  • 举报
回复

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧