首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Unix中打印当前用户名和系统名?

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

Stack Overflow用户
提问于 2012-01-04 16:27:04
回答 3查看 4.5K关注 0票数 4

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

代码语言:javascript
运行
复制
#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;
}

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-04 16:37:26

getuid()获取的是id,而不是用户名。要获得用户名,您还必须使用getpwuid()

代码语言:javascript
运行
复制
struct passwd *passwd;
passwd = getpwuid ( getuid()); 

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

See it

为了获得主机名,您可以使用gethostname()函数。

票数 3
EN

Stack Overflow用户

发布于 2012-01-04 16:30:40

User --> getuid() (另请参阅geteuid())。

机器名称--> gethostname()

这是纯C语言,我不知道C++是否有其他的库调用。

票数 5
EN

Stack Overflow用户

发布于 2012-01-04 16:32:03

您需要调用unamegethostnamegetuid (可能还有getgid) system calls,并使用getpwent函数转换数字uid。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8723956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档