2012-01-04 104 views
4

请期待学习如何在Unix中打印当前登录的用户和系统名称。如何在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; 
} 

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

+1

这是一个家庭工作问题吗?你可能应该做一些研究,而不是直接问这样的问题。例如参见http://en.wikipedia.org/wiki/Exec_(operating_system)。 – 2012-01-04 08:29:26

+0

好的..谢谢。 [之间,这不是一项功课]。 – CompilingCyborg 2012-01-04 08:31:01

回答

3

getuid()得到的id不是用户名。为了让你有用户名另外使用getpwuid()

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

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

See it

而对于让你可以使用gethostname()功能的主机名。

+0

感谢您的明确答复和您的时间。 – CompilingCyborg 2012-01-04 08:42:58

5

用户 - >getuid()(另请参阅geteuid())。

机器名称 - >gethostname()

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

+2

我不会称之为“纯C”。这些函数是由POSIX定义的,而不是由C标准定义的,并且它们可能在某些系统(例如Windows)上不可用。 (是的,我知道这个问题被标记为“unix”。) – 2012-01-04 08:36:57

相关问题