.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2001 Andries Brouwer . .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" 2007-07-05 mtk: Added details on underlying system call interfaces .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH UNAME 2 "15. September 2017" Linux Linux\-Programmierhandbuch .SH BEZEICHNUNG uname \- Name und Informationen über den laufenden Kernel abfragen .SH ÜBERSICHT \fB#include \fP .PP \fBint uname(struct utsname *\fP\fIpuffer\fP\fB);\fP .SH BESCHREIBUNG \fBuname\fP gibt Systeminformationen in der Struktur zurück, auf die \fIpuffer\fP Puffer zeigt. Die Struktur \fIutsname\fP wird in \fI\fP definiert: .PP .in +4n .EX 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 }; .EE .in .PP Die Länge der Felder in einem \fIstruct utsname\fP wird nicht angegeben (lesen Sie die ANMERKUNGEN); die Felder werden durch ein Null\-Byte beendet (\(aq\e0\(aq). .SH RÜCKGABEWERT Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird \-1 zurückgegeben und \fIerrno\fP entsprechend gesetzt. .SH FEHLER .TP \fBEFAULT\fP \fIpuffer\fP ist nicht gültig. .SH "KONFORM ZU" POSIX.1\-2001, POSIX.1\-2008, SVr4. Es gibt in 4.3BSD keinen Aufruf für \fBuname\fP(). .PP Das \fIdomainname\fP\-Mitglied (der NIS\- oder YP\-Domain\-Name) ist eine GNU\-Erweiterung. .SH 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 \fInodename\fP 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 \fIdomainname\fP. .PP Zu diesem Zweck benutzt Linux die Systemaufrufe \fBsethostname\fP(2) und \fBsetdomainname\fP(2). Beachten Sie, dass es dabei keinen Standard gibt, der sagt, dass der Rechnername, der durch \fBsethostname\fP(2) gesetzt wird, die gleiche Zeichenkette wie das Feld \fInodename\fP in der von \fBuname\fP() 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 \fBsetdomainname\fP(2) und das Feld \fIdomainname\fP. .PP 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 \fBSYS_NMLN\fP oder \fB_SYS_NMLN\fP oder \fBUTSLEN\fP oder \fB_UTSNAME_LENGTH\fP. 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. .PP Auf einen Teil der Information in »utsname« kann auch über \fI/proc/sys/kernel/\fP{\fIostype\fP, \fIhostname\fP, \fIosrelease\fP, \fIversion\fP, \fIdomainname\fP} zugegriffen werden. .SS "Unterschiede C\-Bibliothek/Kernel" .PP .\" That was back before Linux 1.0 .\" That was also back before Linux 1.0 Im Laufe der Zeit hat das Vergößern der Struktur \fIutsname\fP zu drei aufeinanderfolgenden Versionen von \fBuname\fP() geführt: \fIsys_olduname\fP() (Slot \fI__NR_oldolduname\fP), \fIsys_uname\fP() (Slot \fI__NR_olduname\fP) und \fIsys_newuname\fP() (Slot \fI__NR_uname)\fP. 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 \fIdomainname\fP hinzu. Die Glibc\-Wrapper\-Funktion \fBuname\fP() versteckt diese Einzelheiten vor Anwendungen durch Aufrufen der aktuellsten Version des vom Kernel bereitgestellten Systemaufrufs. .SH "SIEHE AUCH" \fBuname\fP(1), \fBgetdomainname\fP(2), \fBgethostname\fP(2), \fBnamespaces\fP(7) .SH KOLOPHON Diese Seite ist Teil der Veröffentlichung 4.16 des Projekts Linux\-\fIman\-pages\fP. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter \%https://www.kernel.org/doc/man\-pages/. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Martin Schulze , Patrick Rother , Chris Leick und Mario Blättermann 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 .