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