Provided by: manpages-de-dev_4.26.0-1_all 

BEZEICHNUNG
gethostname, sethostname - bestimmt/setzt den Rechnernamen
BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)
ÜBERSICHT
#include <unistd.h>
int gethostname(char *name, size_t Länge);
int sethostname(const char *name, size_t Länge);
Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)):
gethostname():
_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
|| /* Glibc 2.19 und älter */ _BSD_SOURCE
sethostname():
Seit Glibc 2.21:
_DEFAULT_SOURCE
In Glibc 2.19 und 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
Bis einschließlich Glibc 2.19:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
BESCHREIBUNG
Mit diesen Systemaufrufen erfragen und setzen Sie den Rechnernamen des aktuellen Prozessors. Genauer
ausgedrückt, arbeiten sie mit dem Rechnernamen, der dem UTS-Namensraum des aufrufenden Prozesses
zugeordnet ist.
sethostname() setzt den Rechnernamen auf den im Zeichenfeld (character array) name übergebenen Wert. Das
Argument Länge gibt die Anzahl der Bytes in name an. (Deshalb erfordert name kein abschließendes
Null-Byte.)
gethostname() gibt den (mit einem Nullbyte abgeschlossenen) Rechnernamen der Länge Länge 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 legt nicht fest, ob im Fall einer solchen Kürzung der zurückgegebene
Puffer ein abschließendes Nullbyte enthält.
RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den
Fehler anzuzeigen.
FEHLER
EFAULT name ist eine ungültige Adresse.
EINVAL Länge ist negativ oder das Argument Länge für sethostname() überschreitet die maximal zulässige
Größe.
ENAMETOOLONG
gethostname() der Glibc gibt damit an, das Länge 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-Capability im Benutzernamensraum, der
seinem UTS-Namensraum zugeordnet ist (siehe namespaces(7)).
VERSIONEN
SUSv2 garantiert, dass »Rechnernamen auf 255 Byte begrenzt sind«. POSIX.1 garantiert, dass »Rechnernamen
(ohne das abschließende Nullbyte) 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).
Unterschiede C-Bibliothek/Kernel
Die GNU-C-Bibliothek implementiert gethostname() nicht als Systemaufruf, sondern als Bibliotheksfunktion.
Diese Funktion ruft uname(2) auf und kopiert bis zu Länge 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 Länge ist.
In diesem Fall gibt sie -1 zurück und setzt errno auf ENAMETOOLONG; der zurückgegebene name enthält dann
kein abschließendes Nullbyte.
STANDARDS
gethostname()
POSIX.1-2008.
sethostname()
Keine.
GESCHICHTE
SVr4, 4.4BSD (diese Schnittstellen kamen erstmals in 4.2BSD vor). POSIX.1-2001 und POSIX.1-2008
spezifizieren gethostname(), aber nicht sethostname().
Glibc-Versionen vor 2.2 verhielten sich anders, wenn die Länge von nodename größer als oder gleich Länge
war: sie kopierten nichts nach name, gaben -1 zurück und setzten errno auf ENAMETOOLONG.
SIEHE AUCH
hostname(1), getdomainname(2), setdomainname(2), uname(2), uts_namespaces(7)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von René Tschirley <gremlin@cs.tu-berlin.de>, Martin
Eberhard Schauer <Martin.E.Schauer@gmx.de> und Mario Blättermann <mario.blaettermann@gmail.com> 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 die
Mailingliste der Übersetzer.
Linux man-pages 6.9.1 2. Mai 2024 gethostname(2)