如何在Unix中打印当前用户和系统名称?

时间:2012-01-04 08:27:04

标签: c++ shell unix username

我期待着学习如何在Unix中打印当前登录的用户和系统名称。

#include <unistd.h>
#include <fcntl.h>

using namespace std;

int main(int argc, char **argv)   
{      
     //Print the current logged-in user / username.   
     //Print the name of the system / computer name.

     return 0;
}

如果您能提供一行或两行代码作为演示,我将不胜感激。感谢

3 个答案:

答案 0 :(得分:5)

用户 - &gt; getuid()(另见geteuid())。

机器名称 - &gt; gethostname()

那是纯粹的C.我不知道C ++是否有其他库调用。

答案 1 :(得分:4)

您需要致电unamegethostnamegetuid(或许getgidsystem calls,并将数字uid转换为{{3功能。

答案 2 :(得分:3)

getuid()获取的ID不是用户名。要获取用户名,您必须另外使用getpwuid()

struct passwd *passwd;
passwd = getpwuid ( getuid()); 

printf("The Login Name is %s ", passwd->pw_name);

See it

要获取主机名,您可以使用gethostname()功能。