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[];    /* BS-Release (z.B. »2.6.28«) */
    char version[];    /* BS-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.
 
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.
Zu diesem Zweck benutzt Linux die Systemaufrufe 
sethostname(2) und
  
setdomainname(2). Beachten Sie, dass es dabei keinen Standard gibt, der
  sagt, dass der Rechnername, der durch 
sethostname(2) gesetzt wird, die
  gleiche Zeichenkette wie das Feld 
nodename in der von 
uname()
  zurückgegebenen Struktur hat (allerdings erlauben einige Systeme einen
  256 Byte langen Rechnernamen und einen 8 Byte langen Knotennamen), aber auf
  Linux ist dies der Fall. Das gleiche gilt für 
setdomainname(2) und
  das Feld 
domainname.
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¶
Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux-
  
man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler
  gemeldet werden können, finden sich unter
  
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>.