我尝试编写一个C / C ++函数(多平台支持),以便能够获得"计算机主机名"如果它在"真实"工作站或服务器,看起来它不适用于在Amazon EC2中运行的Windows服务器。
在Windows下我使用以下代码:
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
char name[MAX_COMPUTERNAME_LENGTH + 1] = "";
int size = MAX_COMPUTERNAME_LENGTH;
::gethostname(name, size);
string hostname(name);
WSACleanup();
在EC2的Windows服务器上,我得到一个空字符串。但如果只检查环境变量,我得到了:
echo %COMPUTERNAME%
WIN-LXKBCSPP55Y
我也尝试GetComputerName
,但它返回了∩½ÿ<Ω▒ìτÅ¡
欢迎任何帮助,因为现在我不明白发生了什么!