我期待着学习如何在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;
}
如果您能提供一行或两行代码作为演示,我将不胜感激。感谢
答案 0 :(得分:5)
用户 - &gt; getuid()
(另见geteuid()
)。
机器名称 - &gt; gethostname()
。
那是纯粹的C.我不知道C ++是否有其他库调用。
答案 1 :(得分:4)
您需要致电uname,gethostname,getuid(或许getgid)system calls,并将数字uid转换为{{3功能。
答案 2 :(得分:3)
getuid()
获取的ID不是用户名。要获取用户名,您必须另外使用getpwuid()
:
struct passwd *passwd;
passwd = getpwuid ( getuid());
printf("The Login Name is %s ", passwd->pw_name);
要获取主机名,您可以使用gethostname()
功能。