gethostname(2) System Calls Manual gethostname(2) BEZEICHNUNG gethostname, sethostname - bestimmt/setzt den Rechnernamen BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include int gethostname(char *Name, size_t Grosse); int sethostname(const char *Name, size_t Grosse); Mit Glibc erforderliche Feature-Test-Makros (siehe feature_test_macros(7)): gethostname(): _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L || /* Glibc 2.19 und alter */ _BSD_SOURCE sethostname(): Seit Glibc 2.21: _DEFAULT_SOURCE In Glibc 2.19 und 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) Bis einschliesslich Glibc 2.19: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) BESCHREIBUNG Mit diesen Systemaufrufen erfragen und setzen Sie den Rechnernamen des aktuellen Prozessors. Genauer ausgedruckt, 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 ubergebenen Wert. Das Argument Grosse gibt die Anzahl der Bytes in Name an. (Deshalb erfordert Name kein abschliessendes Null-Byte.) gethostname() gibt den (mit einem Nullbyte abgeschlossenen) Rechnernamen der Grosse Grosse Byte im Zeichenfeld Name zuruck. Ist der Rechnername zu gross fur Name, wird er ohne Fehlermeldung gekurzt (siehe aber die VERSIONEN unten). POSIX.1 legt nicht fest, ob im Fall einer solchen Kurzung der zuruckgegebene Puffer ein abschliessendes Nullbyte enthalt. RUCKGABEWERT Bei Erfolg wird Null zuruckgegeben. Bei einem Fehler wird -1 zuruckgegeben und errno gesetzt, um den Fehler anzuzeigen. FEHLER EFAULT Name ist eine ungultige Adresse. EINVAL Grosse ist negativ oder das Argument Grosse fur sethostname() uberschreitet die maximal zulassige Grosse. ENAMETOOLONG gethostname() der Glibc gibt damit an, das Grosse kleiner ist als die tatsachliche Grosse. (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 abschliessende Nullbyte) auf HOST_NAME_MAX byte begrenzt sind<<. Fur Linux ist HOST_NAME_MAX seit Version 1.0 auf 64 gesetzt (fruhere 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 Grosse Byte aus dem zuruckgegebenen Feld nodename nach Name. Nach dem Kopieren pruft die Funktion, ob die Lange von nodename grosser als oder gleich Grosse ist. In diesem Fall gibt sie -1 zuruck und setzt errno auf ENAMETOOLONG; der zuruckgegebene Name enthalt dann kein abschliessendes Nullbyte. STANDARDS gethostname() POSIX.1-2024. sethostname() Keine. GESCHICHTE gethostname() 4.2BSD, SVr4, POSIX.1-2001. sethostname() 4.2BSD, SVr4. Glibc-Versionen vor 2.2 verhielten sich anders, wenn die Lange von nodename grosser als oder gleich Grosse war: sie kopierten nichts nach Name, gaben -1 zuruck und setzten errno auf ENAMETOOLONG. SIEHE AUCH hostname(1), getdomainname(2), setdomainname(2), uname(2), uts_namespaces(7) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Rene Tschirley , Martin Eberhard Schauer und Mario Blattermann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.18 8. Februar 2026 gethostname(2)