小编Cas*_*lho的帖子

在Linux中使用getlogin函数

当我在Linux Suse10机器上登录并通过C++程序检查getlogin_r()时,我得到一个正确的结果作为我的登录名.

int main()
{
    char szUserName[64] = {0};

    int nGet = getlogin_r(szUserName, sizeof(szUserName)-1);
    if(0 != nGet)
        {
            printerr();
        }
    printf("%s\n", szUserName);
    char * szHome = getlogin();
    printf("%s\n", szHome);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但在使用su - name2后,我现在更改了登录名.但是getlogin_r()仍然显示旧的usename.

一种解决方案是使用geteuid().但是上述问题的原因是什么呢?

c++ linux login

1
推荐指数
1
解决办法
3007
查看次数

标签 统计

c++ ×1

linux ×1

login ×1