Funzione gethostname (winsock2.h)
La funzione gethostname recupera il nome host standard per il computer locale.
Sintassi
int WSAAPI gethostname(
[out] char *name,
[in] int namelen
);
Parametri
[out] name
Puntatore a un buffer che riceve il nome host locale.
[in] namelen
Lunghezza, in byte, del buffer a cui punta il parametro name .
Valore restituito
Se non si verifica alcun errore, gethostname restituisce zero. In caso contrario, restituisce SOCKET_ERROR e un codice di errore specifico può essere recuperato chiamando WSAGetLastError.
Codice di errore | Significato |
---|---|
Il parametro name è un puntatore NULL o non è una parte valida dello spazio indirizzi utente. Questo errore viene restituito anche se la dimensione del buffer specificata dal parametro namelen è troppo piccola per contenere il nome host completo. | |
Prima di usare questa funzione, è necessario che venga eseguita una chiamata WSAStartup riuscita. | |
Il sottosistema di rete non è riuscito. | |
È in corso una chiamata di Windows Sockets 1.1 bloccante oppure il provider di servizi sta ancora elaborando una funzione di callback. |
Commenti
La funzione gethostname restituisce il nome dell'host locale nel buffer specificato dal parametro name . Il nome host viene restituito come stringa con terminazione Null. Il formato del nome host dipende dal provider Windows Sockets, che può essere un nome host semplice o può essere un nome di dominio completo. Tuttavia, è garantito che il nome restituito verrà analizzato correttamente da gethostbyname e WSAAsyncGetHostByName.
La lunghezza massima del nome restituito nel buffer a cui punta il parametro name dipende dal provider dello spazio dei nomi.
Se la funzione gethostname viene usata in una risorsa cluster in Windows Server 2008, Windows Server 2003 o Windows 2000 Server e viene definita la variabile di ambiente CLUSTER_NETWORK_NAME , il valore in questa variabile di ambiente sostituisce il nome host effettivo e viene restituito. In una risorsa cluster la variabile di ambiente CLUSTER_NETWORK_NAME contiene il nome del cluster.
La funzione gethostname esegue una query sui provider dello spazio dei nomi per determinare il nome host locale usando il GUID SVCID_HOSTNAME definito nel file di intestazione Svgguid.h . Se nessun provider di spazi dei nomi risponde, la funzione gethostname restituisce il nome NetBIOS del computer locale.
La lunghezza massima, in byte, della stringa restituita nel buffer a cui punta il parametro name dipende dal provider dello spazio dei nomi, ma questa stringa deve essere di 256 byte o inferiore. Pertanto, se un buffer di 256 byte viene passato nel parametro name e il parametro namelen è impostato su 256, le dimensioni del buffer saranno sempre adeguate.
Windows Phone 8: questa funzione è supportata per le app dello Store di Windows Phone in Windows Phone 8 e versioni successive.
Windows 8.1 e Windows Server 2012 R2: questa funzione è supportata per le app di Windows Store in Windows 8.1, Windows Server 2012 R2 e versioni successive.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8.1, Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | winsock2.h (include Winsock2.h) |
Libreria | Ws2_32.lib |
DLL | Ws2_32.dll |