uname(2) | System Calls Manual | uname(2) |
BEZEICHNUNG
uname - Name und Informationen über den laufenden Kernel abfragen
BIBLIOTHEK
Standard-C-Bibliothek (libc, -lc)
ÜBERSICHT
#include <sys/utsname.h>
int uname(struct utsname *Puffer);
BESCHREIBUNG
uname gibt Systeminformationen in der Struktur zurück, auf die Puffer Puffer zeigt. Die Struktur utsname wird in <sys/utsname.h> definiert:
struct utsname { char sysname[]; /* Name des Betriebssystems (z.B. »Linux«) */ char nodename[]; /* Name innerhalb des Kommunikationsnetzwerks, an den der Knoten angehängt ist, falls vorhanden */ char release[]; /* Betriebssystem-Release (z.B. »2.6.28«) */ char version[]; /* Betriebssystem-Version */ char machine[]; /* Hardwaretyp-Bezeichner */ #ifdef _GNU_SOURCE char domainname[]; /* NIS- oder YP-Domain-Name */ #endif };
Die Länge der Felder in einem struct utsname wird nicht angegeben (lesen Sie die ANMERKUNGEN); die Felder werden durch ein Nullbyte beendet (»\0«).
RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
FEHLER
- EFAULT
- Puffer ist nicht gültig.
VERSIONEN
Das domainname-Mitglied (der NIS- oder YP-Domain-Name) ist eine GNU-Erweiterung.
Die Länge der Felder in den Strukturen variiert. Einige Betriebssysteme oder Bibliotheken benutzen hart kodierte 9 oder 33 oder 65 oder 257. Andere Systeme benutzen SYS_NMLN oder _SYS_NMLN oder UTSLEN oder _UTSNAME_LENGTH. Offensichtlich ist es eine schlechte Idee, einige dieser Konstanten zu benutzen; benutzen Sie nur sizeof(…). SVr4 verwendet 257, »um Internet-Rechnernamen zu unterstützen« — dies ist wahrscheinlich der größte Wert, der im Feld angetroffen wird.
STANDARDS
POSIX.1-2008.
GESCHICHTE
POSIX.1-2001, SVr4, 4.4BSD.
Unterschiede C-Bibliothek/Kernel
Im Laufe der Zeit hat das Vergößern der Struktur utsname zu drei aufeinanderfolgenden Versionen von uname() geführt: sys_olduname() (Slot __NR_oldolduname), sys_uname() (Slot __NR_olduname) und sys_newuname() (Slot __NR_uname). Der erste benutzte die Länge 9 für alle Felder, der zweite benutzte 65, der dritte benutzt auch 65, fügt aber das Feld domainname hinzu. Die Glibc-Wrapper-Funktion uname() versteckt diese Einzelheiten vor Anwendungen durch Aufrufen der aktuellsten Version des vom Kernel bereitgestellten Systemaufrufs.
ANMERKUNGEN
Der Kernel hat den Namen, die Veröffentlichung, die Version und den unterstützen Maschinentyp eingebaut. Umgekehrt wird das Feld nodename durch den Administrator konfiguriert, damit es auf das Netzwerk passt (das nennt BSD historisch den »hostname« (Rechnernamen) und wird mittels sethostname(2) gesetzt). Ähnlich wird das Feld domainname mittels setdomainname(2) gesetzt.
Auf einen Teil der Information in »utsname« kann auch über /proc/sys/kernel/{ostype, hostname, osrelease, version, domainname} zugegriffen werden.
SIEHE AUCH
uname(1), getdomainname(2), gethostname(2), uts_namespaces(7)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>, Patrick Rother <krd@gulu.net>, Chris Leick <c.leick@vollbio.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.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 die Mailingliste der Übersetzer.
15. Juni 2024 | Linux man-pages 6.9.1 |