如何获取执行程序的人的用户名?

H4c*_*0rD 11 c++ linux winapi posix

如何在C++中获取进程所有者(正在执行我的程序的用户)的用户名?

Tho*_*ini 29

视窗

GetUserName()

例:

 char user_name[UNLEN+1];
 DWORD user_name_size = sizeof(user_name);
 if (GetUserName(user_name, &user_name_size))
     cout << "Your user name is: " << user_name << endl;
 else
     /* Handle error */
Run Code Online (Sandbox Code Playgroud)

Linux的

看看getpwuid:

getpwuid()函数将在用户数据库中搜索具有匹配uid的条目.

getpwuid()函数应返回指向struct passwd的指针

struct passwd将包含char *pw_name.

使用getuid来获取用户ID.