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.

STANDARDS

POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD.
Das domainname-Mitglied (der NIS- oder YP-Domain-Name) ist eine GNU-Erweiterung.

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.
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.
Auf einen Teil der Information in »utsname« kann auch über /proc/sys/kernel/{ostype, hostname, osrelease, version, domainname} zugegriffen werden.

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.

SIEHE AUCH

uname(1), getdomainname(2), gethostname(2), uts_namespaces(7)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze <[email protected]>, Patrick Rother <[email protected]>, Chris Leick <[email protected]>, Mario Blättermann <[email protected]> und Helge Kreutzmann <[email protected]> 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

Recommended readings

Pages related to olduname you should read also: