Scroll to navigation

GETHOSTNAME(2) Linux-Programmierhandbuch GETHOSTNAME(2)

BEZEICHNUNG

gethostname, sethostname - bestimmt/setzt den Rechnernamen

ÜBERSICHT

#include <unistd.h>
 
int gethostname(char *name, size_t len);
 
int sethostname(const char *name, size_t len);
 

Mit Glibc erforderliche Makros (siehe feature_test_macros(7)):
 
gethostname():
Seit Glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500
 
|| /* Seit Glibc 2.12: */ _POSIX_C_SOURCE >= 200112L
 
sethostname():
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

BESCHREIBUNG

Mit diesen Systemaufrufen erfragen und setzen Sie den Rechnernamen des aktuellen Prozessors.
 
sethostname() setzt den Rechnernamen auf den im Zeichenfeld (character array) name übergebenen Wert. Das Argument len gibt die Anzahl der Bytes in name an. (Deshalb erfordert name kein abschließendes Null-Byte.)
 
gethostname() gibt den (mit einem Null-Byte abgeschlossenen) Rechnernamen der Länge len Byte im Zeichenfeld name zurück. Ist der Rechnername zu groß für name, wird er ohne Fehlermeldung gekürzt (siehe aber die ANMERKUNGEN unten). POSIX.1-2001 legt nicht fest, ob im Fall einer solchen Kürzung der zurückgegebene Puffer ein abschließendes Null-Byte enthält.

RÜCKGABEWERT

Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EFAULT
name ist eine ungültige Adresse.
EINVAL
len ist negativ oder das Argument len für sethostname() überschreitet die maximal zulässige Größe.
ENAMETOOLONG
gethostname() der Glibc gibt damit an, das len kleiner ist als die tatsächliche Größe. (Vor Version 2.1 verwendet Glibc in diesem Fall EINVAL.)
EPERM
Der Aufruf von sethostname() erfolgte ohne die CAP_SYS_ADMIN-Fähigkeit.

KONFORM ZU

SVr4, 4.4BSD (diese Schnittstellen kamen erstmals in 4.2BSD vor). POSIX.1-2001 spezifiziert gethostname(), aber nicht sethostname().

ANMERKUNGEN

SUSv2 garantiert, dass »Rechnernamen auf 255 Byte begrenzt sind«. POSIX.1-2001 garantiert, dass »Rechnernamen (ohne das abschließende Null-Byte) auf HOST_NAME_MAX Byte begrenzt sind«. Für Linux ist HOST_NAME_MAX seit Version 1.0 auf 64 gesetzt (frühere Kernel setzten eine Grenze von 8 Byte).

Anmerkungen zur Glibc

Die GNU-C-Bibliothek implementiert gethostname() nicht als Systemaufruf, sondern als Bibliotheksfunktion. Diese Funktion ruft uname(2) auf und kopiert bis zu len Byte aus dem zurückgegebenen Feld nodename nach name. Nach dem Kopieren prüft die Funktion, ob die Länge von nodename größer als oder gleich len ist. In diesem Fall gibt sie -1 zurück und setzt errno auf ENAMETOOLONG; der zurückgegebene name enthält dann kein abschließendes Null-Byte.
 
Glibc-Versionen vor 2.2 verhielten sich anders, wenn die Länge von nodename größer als oder gleich len war: sie kopierten nichts nach name, gaben -1 zurück und setzten errno auf ENAMETOOLONG.

SIEHE AUCH

getdomainname(2), setdomainname(2), uname(2)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.
 

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von René Tschirley <gremlin@cs.tu-berlin.de> und Martin Eberhard Schauer <Martin.E.Schauer@gmx.de> erstellt.
 
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
 
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.
26. September 2010 Linux