Estoy trabajando en un programa C++ que necesita usar el nombre de host de la computadora en la que se está ejecutando. Mi método actual para recuperar esto es manipular una API C como esta:
char *host = new char[1024]; gethostname(host,1024); auto hostname = std::string(host); delete host;¿Existe un método portátil moderno de C++ para hacer esto, sin incluir una gran biblioteca externa (por ejemplo, boost)?
No, no hay soporte estándar de C++ para esto. Tendrá que crear su propia función u obtener una biblioteca que tenga esta funcionalidad.
#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; }