C ++。从Linux守护程序获取登录的用户名

问题描述 投票:0回答:1

有没有一种方法可以从linux守护程序中登录用户名?我尝试过

seteuid(1000);
std::string userName = getlogin();

但是似乎此调用失败,之后我的应用程序终止了。一般情况如下:运行我的守护进程的一些脚本。在此守护程序内部,我启动了另一个UI进程(将其称为A)。然后在进程A中,我尝试使用前面所述的方法获取用户名。我的进程A在getlogin调用后终止。是否有任何可靠的方法可以从进程A登录用户名?

c++ linux posix username
1个回答
0
投票
相反,您需要使用“ passwd”数据库(通常但并非总是由/etc/passwd文件支持):

struct passwd *pw = getpwuid(geteuid()); string userName = pw->name;

© www.soinside.com 2019 - 2024. All rights reserved.