QSysInfo Class

Die Klasse QSysInfo liefert Informationen über das System. Mehr...

Kopfzeile: #include <QSysInfo>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Öffentliche Typen

enum Endian { BigEndian, LittleEndian, ByteOrder }
enum Sizes { WordSize }

Statische öffentliche Mitglieder

QByteArray bootUniqueId()
QString buildAbi()
QString buildCpuArchitecture()
QString currentCpuArchitecture()
QString kernelType()
QString kernelVersion()
QString machineHostName()
QByteArray machineUniqueId()
QString prettyProductName()
QString productType()
QString productVersion()

Detaillierte Beschreibung

  • WordSize gibt die Größe eines Zeigers für die Plattform an, auf der die Anwendung kompiliert wird.
  • ByteOrder gibt an, ob die Plattform Big-Endian oder Little-Endian ist.

Einige Konstanten sind nur für bestimmte Plattformen definiert. Sie können die Präprozessorsymbole Q_OS_WIN und Q_OS_MACOS verwenden, um zu testen, ob die Anwendung unter Windows oder macOS kompiliert wurde.

Siehe auch QLibraryInfo.

Dokumentation der Mitgliedstypen

enum QSysInfo::Endian

KonstanteWertBeschreibung
QSysInfo::BigEndian0Big-Endian-Byte-Reihenfolge (auch Netzwerk-Byte-Reihenfolge genannt)
QSysInfo::LittleEndian1Little-Endian-Byte-Reihenfolge
QSysInfo::ByteOrderBigEndian or LittleEndianEntspricht BigEndian oder LittleEndian, je nach der Bytereihenfolge der Plattform.

enum QSysInfo::Sizes

Diese Aufzählung liefert plattformspezifische Informationen über die Größe der von der zugrunde liegenden Architektur verwendeten Datenstrukturen.

KonstanteWertBeschreibung
QSysInfo::WordSize(sizeof(void *)<<3)Die Größe eines Zeigers in Bits für die Plattform, auf der die Anwendung kompiliert ist (32 oder 64).

Dokumentation der Mitgliedsfunktionen

[static] QByteArray QSysInfo::bootUniqueId()

Gibt eine eindeutige ID für den Bootvorgang dieses Rechners zurück, sofern eine solche ermittelt werden kann. Wenn keine eindeutige ID ermittelt werden konnte, gibt diese Funktion ein leeres Byte-Array zurück. Es wird erwartet, dass sich dieser Wert nach jedem Startvorgang ändert und als global eindeutig angesehen werden kann.

Diese Funktion ist derzeit nur für die Betriebssysteme Linux und Apple implementiert.

Siehe auch machineUniqueId().

[static] QString QSysInfo::buildAbi()

Gibt den vollständigen Architekturstring zurück, für den Qt kompiliert wurde. Diese Zeichenfolge ist nützlich, um verschiedene, inkompatible Builds zu identifizieren. Sie kann zum Beispiel als Kennung verwendet werden, um ein Upgrade-Paket von einem Server anzufordern.

Die von dieser Funktion zurückgegebenen Werte werden wie folgt stabil gehalten: Die obligatorischen Komponenten des Ergebnisses werden sich in zukünftigen Versionen von Qt nicht ändern, aber optionale Suffixe können hinzugefügt werden.

Der zurückgegebene Wert besteht aus drei oder mehr Teilen, die durch Bindestriche ("-") getrennt sind. Diese sind:

KomponenteWert
CPU-ArchitekturDas Gleiche wie QSysInfo::buildCpuArchitecture(), z. B. "arm", "i386", "mips" oder "x86_64".
Endianness"little_endian" oder "big_endian"
WortgrößeOb es sich um eine 32- oder 64-Bit-Anwendung handelt. Mögliche Werte sind: "llp64" (Windows 64-bit), "lp64" (Unix 64-bit), "ilp32" (32-bit)
(Fakultativ) ABINull oder mehr Komponenten, die verschiedene ABIs identifizieren, die in dieser Architektur möglich sind. Derzeit hat Qt optionale ABI-Komponenten für ARM- und MIPS-Prozessoren: eine Komponente ist die Haupt-ABI (z.B. "eabi", "o32", "n32", "o64"); eine andere gibt an, ob die aufrufende Konvention Hardware-Fließkommaregister verwendet ("hardfloat" ist vorhanden).

Wenn Qt mit -qreal float konfiguriert wurde, ist außerdem das ABI-Options-Tag "qreal_float" vorhanden. Wenn Qt mit einem anderen Typ als qreal konfiguriert wurde, ist dieser Typ nach "qreal_" vorhanden, wobei alle Zeichen außer Buchstaben und Ziffern durch einen Unterstrich, gefolgt von zwei Hex-Ziffern, ersetzt werden. Zum Beispiel wird -qreal long double zu "qreal_long_20double".

Siehe auch QSysInfo::buildCpuArchitecture().

[static] QString QSysInfo::buildCpuArchitecture()

Gibt die Architektur der CPU, für die Qt kompiliert wurde, im Textformat zurück. Beachten Sie, dass dies möglicherweise nicht mit der tatsächlichen CPU übereinstimmt, auf der die Anwendung läuft, wenn es eine Emulationsschicht gibt oder wenn die CPU mehrere Architekturen unterstützt (wie x86-64 Prozessoren, die i386-Anwendungen unterstützen). Um dies zu erkennen, verwenden Sie currentCpuArchitecture().

Die von dieser Funktion zurückgegebenen Werte sind stabil und werden sich im Laufe der Zeit nicht ändern, so dass sich Anwendungen auf den zurückgegebenen Wert als Identifikator verlassen können, außer dass im Laufe der Zeit neue CPU-Typen hinzugefügt werden können.

Typische Rückgabewerte sind (Hinweis: Liste nicht vollständig):

  • "arm"
  • "arm64"
  • "i386"
  • "ia64"
  • "mips"
  • "mips64"
  • "power"
  • "power64"
  • "sparc"
  • "sparcv9"
  • "x86_64"

Siehe auch QSysInfo::buildAbi() und QSysInfo::currentCpuArchitecture().

[static] QString QSysInfo::currentCpuArchitecture()

Gibt die Architektur der CPU, auf der die Anwendung läuft, im Textformat zurück. Beachten Sie, dass diese Funktion davon abhängt, was das Betriebssystem meldet, und möglicherweise die tatsächliche CPU-Architektur nicht erkennt, wenn das Betriebssystem diese Information verbirgt oder nicht in der Lage ist, sie zu liefern. Ein 32-Bit-Betriebssystem, das auf einer 64-Bit-CPU läuft, ist zum Beispiel normalerweise nicht in der Lage, festzustellen, ob die CPU tatsächlich in der Lage ist, 64-Bit-Programme auszuführen.

Die von dieser Funktion zurückgegebenen Werte sind meist stabil: es wird versucht sicherzustellen, dass sie über die Zeit konstant bleiben und mit den von QSysInfo::builldCpuArchitecture() zurückgegebenen Werten übereinstimmen. Aufgrund der Natur der verwendeten Betriebssystemfunktionen kann es jedoch zu Diskrepanzen kommen.

Typische Rückgabewerte sind (Hinweis: Liste nicht vollständig):

  • "arm"
  • "arm64"
  • "i386"
  • "ia64"
  • "mips"
  • "mips64"
  • "power"
  • "power64"
  • "sparc"
  • "sparcv9"
  • "x86_64"

Siehe auch QSysInfo::buildAbi() und QSysInfo::buildCpuArchitecture().

[static] QString QSysInfo::kernelType()

Gibt den Typ des Betriebssystemkerns zurück, für den Qt kompiliert wurde. Es ist auch der Kernel, auf dem die Anwendung läuft, es sei denn, das Host-Betriebssystem verwendet eine Form von Kompatibilitäts- oder Virtualisierungsschicht.

Die von dieser Funktion zurückgegebenen Werte sind stabil und werden sich im Laufe der Zeit nicht ändern, so dass sich Anwendungen auf den zurückgegebenen Wert als Identifikator verlassen können, mit der Ausnahme, dass im Laufe der Zeit neue Betriebssystem-Kernel-Typen hinzugefügt werden können.

Unter Windows gibt diese Funktion den Typ des Windows-Kernels zurück, etwa "winnt". Auf Unix-Systemen gibt sie dasselbe zurück wie die Ausgabe von uname -s (kleingeschrieben).

Hinweis: Diese Funktion kann überraschende Werte zurückgeben: Sie gibt "linux" für alle Betriebssysteme mit Linux (einschließlich Android), "qnx" für alle Betriebssysteme mit QNX, "freebsd" für Debian/kFreeBSD und "darwin" für macOS und iOS zurück. Informationen über die Art des Produkts, auf dem die Anwendung läuft, finden Sie unter productType().

Siehe auch QFileSelector, kernelVersion(), productType(), productVersion(), und prettyProductName().

[static] QString QSysInfo::kernelVersion()

Gibt die Release-Version des Betriebssystem-Kernels zurück. Unter Windows gibt er die Version des NT-Kernels zurück. Auf Unix-Systemen, einschließlich Android und macOS, gibt er dasselbe zurück, was der Befehl uname -r zurückgeben würde. Unter VxWorks wird der numerische Teil der Zeichenkette zurückgegeben, die von kernelVersion() gemeldet wird.

Wenn die Version nicht ermittelt werden konnte, kann diese Funktion eine leere Zeichenkette zurückgeben.

Siehe auch kernelType(), productType(), productVersion(), und prettyProductName().

[static] QString QSysInfo::machineHostName()

Gibt den Hostnamen dieses Rechners zurück, sofern ein solcher konfiguriert ist. Beachten Sie, dass Hostnamen nicht garantiert global eindeutig sind, insbesondere wenn sie automatisch konfiguriert wurden.

Diese Funktion garantiert nicht, dass der zurückgegebene Hostname ein Fully Qualified Domain Name (FQDN) ist. Verwenden Sie dazu QHostInfo, um den zurückgegebenen Namen in einen FQDN aufzulösen.

Diese Funktion gibt dasselbe zurück wie QHostInfo::localHostName().

Siehe auch QHostInfo::localDomainName und machineUniqueId().

[static] QByteArray QSysInfo::machineUniqueId()

Gibt eine eindeutige ID für diesen Rechner zurück, sofern eine solche ermittelt werden kann. Wenn keine eindeutige ID ermittelt werden konnte, gibt diese Funktion ein leeres Byte-Array zurück. Im Gegensatz zu machineHostName() ist der von dieser Funktion zurückgegebene Wert wahrscheinlich weltweit eindeutig.

Eine eindeutige ID ist bei Netzwerkoperationen nützlich, um diesen Rechner über einen längeren Zeitraum zu identifizieren, wenn sich die IP-Adresse ändern könnte oder wenn dieser Rechner mehr als eine IP-Adresse haben könnte. Die ID kann z. B. bei der Kommunikation mit einem Server oder beim Speichern gerätespezifischer Daten im gemeinsamen Netzwerkspeicher verwendet werden.

Beachten Sie, dass dieser Wert auf einigen Systemen über Neustarts hinweg bestehen bleibt und auf anderen nicht. Anwendungen sollten sich nicht blind auf diese Tatsache verlassen, ohne die Fähigkeiten des Betriebssystems zu überprüfen. Insbesondere auf Linux-Systemen ist diese ID normalerweise permanent und entspricht der D-Bus-Maschinen-ID, außer bei Knoten ohne eigenen Speicher (replizierte Knoten).

Siehe auch machineHostName() und bootUniqueId().

[static] QString QSysInfo::prettyProductName()

Gibt eine hübschere Form von productType() und productVersion() zurück, die andere Token wie den Betriebssystemtyp, Codenamen und andere Informationen enthält. Das Ergebnis dieser Funktion eignet sich zur Anzeige für den Benutzer, aber nicht zur langfristigen Speicherung, da sich die Zeichenkette bei Aktualisierungen von Qt ändern kann.

Wenn productType() "unbekannt" ist, verwendet diese Funktion stattdessen die Funktionen kernelType() und kernelVersion().

Siehe auch kernelType(), kernelVersion(), productType(), und productVersion().

[static] QString QSysInfo::productType()

Gibt den Produktnamen des Betriebssystems zurück, auf dem diese Anwendung läuft. Wenn die Anwendung auf einer Emulations- oder Virtualisierungsschicht läuft (z. B. WINE auf einem Unix-System), prüft diese Funktion die Emulations-/Virtualisierungsschicht.

Die von dieser Funktion zurückgegebenen Werte sind stabil und ändern sich im Laufe der Zeit nicht, so dass sich Anwendungen auf den zurückgegebenen Wert als Identifikator verlassen können, außer dass im Laufe der Zeit neue Betriebssystemtypen hinzugefügt werden können.

Hinweis zu Linux und Android: Diese Funktion gibt "android" für Linux-Systeme mit Android-Benutzeroberfläche zurück, insbesondere bei Verwendung der Bionic-Bibliothek. Bei allen anderen Linux-Systemen, unabhängig von der verwendeten C-Bibliothek, wird versucht, den Distributionsnamen zu ermitteln und dieser zurückgegeben. Wenn die Ermittlung des Distributionsnamens fehlgeschlagen ist, gibt sie "unknown" zurück.

macOS Hinweis: Diese Funktion gibt "macos" für alle macOS-Systeme zurück, unabhängig von der Apple-Namenskonvention. Zuvor, in Qt 5, gab sie "osx" zurück, ebenfalls unabhängig von den Apple-Namenskonventionen.

Darwin, iOS, tvOS und watchOS Hinweis: Diese Funktion gibt "ios" für iOS-Systeme, "tvos" für tvOS-Systeme, "watchos" für watchOS-Systeme und "darwin" für den Fall, dass das System nicht ermittelt werden konnte, zurück.

FreeBSD-Hinweis: Diese Funktion gibt "debian" für Debian/kFreeBSD zurück und ansonsten "unknown".

Windows-Hinweis: Diese Funktion gibt "windows" zurück.

VxWorks-Hinweis: Diese Funktion gibt "vxworks" zurück.

Für andere Unix-artige Systeme gibt diese Funktion normalerweise "unknown" zurück.

Siehe auch QFileSelector, kernelType(), kernelVersion(), productVersion(), und prettyProductName().

[static] QString QSysInfo::productVersion()

Gibt die Produktversion des Betriebssystems in Form einer Zeichenkette zurück. Wenn die Version nicht ermittelt werden konnte, gibt diese Funktion "unbekannt" zurück.

Sie gibt die Android-, iOS-, macOS-, VxWorks- und Windows-Vollproduktversionen auf diesen Systemen zurück.

Typische Rückgabewerte sind (Hinweis: Liste nicht vollständig):

  • "12" (Android 12)
  • "36" (Fedora 36)
  • "15.5" (iOS 15.5)
  • "12.4" (macOS Monterey)
  • "22.04" (Ubuntu 22.04)
  • "8.6" (watchOS 8.6)
  • "11" (Windows 11)
  • "Server 2022" (Windows Server 2022)
  • "24.03" (VxWorks 7 - 24.03)

Auf Linux-Systemen wird versucht, die Version der Distribution zu ermitteln und diese zurückzugeben. Dies geschieht auch auf Debian/kFreeBSD, so dass diese Funktion in diesem Fall die Debian-Version zurückgibt.

Bei allen anderen Unix-artigen Systemen gibt diese Funktion immer "unknown" zurück.

Hinweis: Der von dieser Funktion zurückgegebene Versionsstring ist nicht garantiert, dass er in Ordnung ist. Unter Linux kann es zu unerwarteten Versionssprüngen kommen. Bitte lesen Sie in der Dokumentation der Distribution nach, wie es mit der Versionierung aussieht.

Siehe auch kernelType(), kernelVersion(), productType(), und prettyProductName().

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.