Reputation: 222
I'm working on a C++ program that needs to use the hostname of the computer it is running on. My current method of retrieving this is by mangling a C API like this:
char *host = new char[1024];
gethostname(host,1024);
auto hostname = std::string(host);
delete host;
Is there a portable modern C++ method for doing this, without including a large external library (e.g., boost)?
Upvotes: 3
Views: 3200
Reputation: 384
#include <string>
//#include <winsock.h> //Windows
//#include <unistd.h> //Linux
std::string GetHostName(void)
{
std::string res = "unknown";
char tmp[0x100];
if( gethostname(tmp, sizeof(tmp)) == 0 )
{
res = tmp;
}
return res;
}
Upvotes: 2
Reputation: 181027
No, there is no standard C++ support for this. You'll either have to make your own function, or get a library that has this functionality.
Upvotes: 4