首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取计算机名和登录的用户名

获取计算机名和登录的用户名
EN

Stack Overflow用户
提问于 2015-01-13 11:07:56
回答 5查看 63.9K关注 0票数 25

我正在开发一个应用程序。其中一种方法需要捕获计算机名称和登录到计算机上的用户,然后将两者都显示给用户。我需要它在Windows和Linux上都能运行。做这件事最好的方法是什么?

EN

回答 5

Stack Overflow用户

发布于 2015-01-13 11:16:03

Windows

您可以尝试使用GetComputerNameGetUserName,下面是一个示例:

代码语言:javascript
运行
复制
#define INFO_BUFFER_SIZE 32767
TCHAR  infoBuf[INFO_BUFFER_SIZE];
DWORD  bufCharCount = INFO_BUFFER_SIZE;

// Get and display the name of the computer.
if( !GetComputerName( infoBuf, &bufCharCount ) )
  printError( TEXT("GetComputerName") ); 
_tprintf( TEXT("\nComputer name:      %s"), infoBuf ); 

// Get and display the user name.
if( !GetUserName( infoBuf, &bufCharCount ) )
  printError( TEXT("GetUserName") ); 
_tprintf( TEXT("\nUser name:          %s"), infoBuf );

请参阅:GetComputerNameGetUserName

Linux

使用gethostname获取计算机名(请参阅gethostname),使用getlogin_r获取登录用户名。你可以在man page of getlogin_r上查看更多信息。简单用法如下:

代码语言:javascript
运行
复制
#include <unistd.h>
#include <limits.h>

char hostname[HOST_NAME_MAX];
char username[LOGIN_NAME_MAX];
gethostname(hostname, HOST_NAME_MAX);
getlogin_r(username, LOGIN_NAME_MAX);
票数 23
EN

Stack Overflow用户

发布于 2017-05-24 16:18:16

如果您可以使用Boost,则可以轻松获取主机名:

代码语言:javascript
运行
复制
#include <boost/asio/ip/host_name.hpp>
// ... whatever ...
const auto host_name = boost::asio::ip::host_name();
票数 23
EN

Stack Overflow用户

发布于 2015-01-13 11:23:10

使用gethostname()获取计算机名称,同时支持windowslinux

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

https://stackoverflow.com/questions/27914311

复制
相关文章

相似问题

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