UNAME(2)

BEZEICHNUNG
uname - Name und Informationen über den laufenden Kernel abfragen

Ü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 »irgendeines durch die
                          Implementierung definierten Netzwerks« */
    char release[];    /* Betriebssystem-Release (z.B. »2.6.28«) */
    char version[];    /* Betriebssystem-Version */
    char machine[];    /* Hardware-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 Null-Byte beendet ('\0').

RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EFAULT
    puffer ist nicht gültig.

KONFORM ZU
SVr4, POSIX.1-2001. Es gibt in 4.3BSD keinen Aufruf für uname().

Das domainname-Mitglied (der NIS- oder YP-Domain-Name) ist eine GNU-Erweiterung.

ANMERKUNGEN
Dies ist ein Systemaufruf und das Betriebssystem kennt wahrscheinlich seinen Namen, das Release und die Version. Es weiß außerdem, auf welcher Hardware er ausgeführt werden kann. Daher sind vier der Felder der Struktur sinnvoll. Andererseits ist das Feld nodename sinnlos: Es gibt den Namen der Maschine in einigen nicht definierten Netzwerken an, typische Maschinen befinden sich aber in mehr als einem Netzwerk und haben mehrere Namen. Zudem hat der Kernel keine Möglichkeit etwas über solche Dinge zu wissen, daher muss ihm gesagt werden, was er hier antworten soll, Das gleiche gilt für das zusätzliche Feld domainname.

To this end, Linux uses the system calls sethostname(2) and setdomainname(2). Note that there is no standard that says that the hostname set by sethostname(2) is the same string as the nodename field of the struct returned by uname() (indeed, some systems allow a 256-byte hostname and an 8-byte nodename), but this is true on Linux. The same holds for setdomainname(2) and the domainname field.

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(...). Oft wird 257 gewählt, um Raum für einen Internet-Rechnernamen zu haben.

Auf einen Teil der Information in »utsname« kann auch über /proc/sys/kernel/{ostype, hostname, osrelease, version, domainname} zugegriffen werden.

  Darunterliegende Kernel-Schnittstelle

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).

KOLOPHON
This page is part of release 3.70 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Martin Schulze <joey@infodrom.org> und Chris Leick <c.leick@vollbio.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 <debian-l10n-german@lists.debian.org>.