sethostname

GETHOSTNAME(2)              Linux-Programmierhandbuch             GETHOSTNAME(2)



BEZEICHNUNG
       gethostname, sethostname - bestimmt/setzt den Rechnernamen

ÜBERSICHT
       #include <unistd.h>

       int gethostname(char *name, size_t Länge);
       int sethostname(const char *name, size_t Länge);

   Mit Glibc erforderliche 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 NULL-Byte 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 NULL-Byte 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)).

KONFORM ZU
       SVr4, 4.4BSD (diese Schnittstellen kamen erstmals in 4.2BSD vor).
       POSIX.1-2001 und POSIX.1-2008 spezifizieren gethostname(), aber nicht
       sethostname().

ANMERKUNGEN
       SUSv2 garantiert, dass »Rechnernamen auf 255 Byte begrenzt sind«. POSIX.1
       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).

   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 NULL-Byte.

       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)

KOLOPHON
       Diese Seite ist Teil der Veröffentlichung 5.13 des Projekts
       Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie
       Fehler gemeldet werden können sowie die aktuelle Version dieser Seite
       finden sich unter https://www.kernel.org/doc/man-pages/.


Ü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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-
       german@lists.debian.org⟩.



Linux                             22. März 2021                   GETHOSTNAME(2)