Auf dieser Seite

QNativeIpcKey Class

Die Klasse „QNativeIpcKey“ enthält einen nativen Schlüssel, der von „ QSystemSemaphore “ und „ QSharedMemory “ verwendet wird. Mehr...

Header: #include <QNativeIpcKey>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Seit: Qt 6.6

QNativeIpcKey-Vergleiche

KategorieVergleichbare Typen
GleichheitQNativeIpcKey

Öffentliche Typen

enum class Type { SystemV, PosixRealtime, Windows }

Öffentliche Funktionen

QNativeIpcKey()
QNativeIpcKey(QNativeIpcKey::Type type)
QNativeIpcKey(const QString &key, QNativeIpcKey::Type type = DefaultTypeForOs)
QNativeIpcKey(const QNativeIpcKey &other)
QNativeIpcKey(QNativeIpcKey &&other)
~QNativeIpcKey()
bool isEmpty() const
bool isValid() const
QString nativeKey() const
void setNativeKey(const QString &newKey)
void setType(QNativeIpcKey::Type type)
void swap(QNativeIpcKey &other)
QString toString() const
QNativeIpcKey::Type type() const
QNativeIpcKey &operator=(QNativeIpcKey &&other)
QNativeIpcKey &operator=(const QNativeIpcKey &other)

Statische öffentliche Mitglieder

const QNativeIpcKey::Type DefaultTypeForOs
QNativeIpcKey fromString(const QString &text)
QNativeIpcKey::Type legacyDefaultTypeForOs()
size_t qHash(const QNativeIpcKey &key, size_t seed = 0)
void swap(QNativeIpcKey &value1, QNativeIpcKey &value2)
bool operator!=(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)
bool operator==(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)

Ausführliche Beschreibung

Die Klassen „ QSharedMemory “ und „ QSystemSemaphore “ identifizieren ihre Ressource mithilfe eines systemweiten Bezeichners, der als „Schlüssel“ bezeichnet wird. Der Low-Level-Schlüsselwert sowie der Schlüsseltyp werden in Qt mithilfe der Klasse „ QNativeIpcKey “ gekapselt.

Diese beiden Klassen bieten zudem die Möglichkeit, mithilfe von `QSharedMemory::platformSafeKey()` und `QSystemSemaphore::platformSafeKey()` native Schlüssel aus einer plattformübergreifenden Kennung zu erstellen. Anwendungen sollten die Eingaben für diese Funktionen niemals gemeinsam nutzen, da verschiedene Versionen von Qt unterschiedliche Transformationen durchführen können, was zu unterschiedlichen nativen Schlüsseln führt. Stattdessen sollte die Anwendung, die das IPC-Objekt erstellt hat, den resultierenden nativen Schlüssel mithilfe der unten beschriebenen Methoden übermitteln.

Einzelheiten zu den Schlüsseltypen, plattformspezifischen Einschränkungen und der Interoperabilität mit älteren oder Nicht-Qt-Anwendungen finden Sie in der Dokumentation zu nativen IPC-Schlüsseln. Diese enthält wichtige Informationen für Anwendungen in einer Sandbox auf Apple-Plattformen, einschließlich aller Apps, die über den Apple App Store bezogen wurden.

Übermittlung von Schlüsseln an andere Prozesse

Weitergabe von Schlüsseln an andere Qt-Prozesse

Wenn der andere Prozess `QNativeIpcKey` unterstützt, erfolgt die Kommunikation am besten über die Zeichenfolgendarstellung, die mit ` toString()` abgerufen und mit ` fromString()` geparst wird. Diese Darstellung kann in einer Datei mit bekanntem Namen gespeichert oder über die Befehlszeile mithilfe von ` QProcess::setArguments()` an einen untergeordneten Prozess übergeben werden.

Wenn der andere Prozess QNativeIpcKey nicht unterstützt, können die beiden Prozesse zwar den nativeKey() austauschen, aber der ältere Code ist wahrscheinlich nicht in der Lage, seinen Schlüsseltyp anzupassen. Die Funktion ` legacyDefaultTypeForOs()` gibt den vom Legacy-Code verwendeten Typ zurück, der möglicherweise nicht mit der Konstante ` DefaultTypeForOs ` übereinstimmt. Dies gilt auch dann, wenn die alte Anwendung nicht denselben Build wie die neue verwendet (z. B. wenn es sich um eine Qt-5-Anwendung handelt), vorausgesetzt, die an das Qt-Konfigurationsskript übergebenen Optionen sind identisch.

Weitergabe von Schlüsseln an Nicht-Qt-Prozesse

Bei der Kommunikation mit Nicht-Qt-Prozessen muss die Anwendung dafür sorgen, dass sie den vom anderen Prozess verwendeten Schlüsseltyp ermittelt. Dies ist insbesondere auf Unix-Systemen wichtig, auf denen sowohl PosixRealtime als auch SystemV üblich sind.

Zeichenkettendarstellung nativer Schlüssel

Das Format der Zeichenfolgendarstellung eines `QNativeIpcKey` ist als stabil und somit vorwärts- und rückwärtskompatibel gedacht, sofern der Schlüsseltyp von der betreffenden Qt-Version unterstützt wird. Das heißt, eine ältere Qt-Version kann die Zeichenfolgendarstellung eines Schlüsseltyps, der nach ihrer Veröffentlichung eingeführt wurde, nicht analysieren. Das erfolgreiche Parsen einer Zeichenfolgendarstellung bedeutet jedoch nicht, dass die Qt-Klassen ein Objekt dieses Typs erfolgreich erstellen können; Anwendungen sollten die Unterstützung mithilfe von QSharedMemory::isKeyTypeSupported() und QSystemSemaphore::isKeyTypeSupported() überprüfen.

Das Format der Zeichenfolgendarstellung besteht aus zwei durch einen Doppelpunkt (':') getrennten Komponenten. Die erste Komponente ist der Schlüsseltyp, der in der folgenden Tabelle beschrieben wird. Die zweite Komponente ist eine typspezifische Nutzlast, die „ percent-encoding “ verwendet. Bei allen derzeit unterstützten Schlüsseltypen entspricht die dekodierte Form dem Inhalt des Feldes „ nativeKey()“.

SchlüsseltypZeichenkettendarstellung
PosixRealtime"posix"
SystemV"systemv"
Windows"windows"
Nicht standardisiert SystemV"systemv-" gefolgt von einer Dezimalzahl

Dieses Format ähnelt einer URI und ermöglicht das Parsen mit URI-/URL-Parsing-Funktionen wie QUrl. Beim Parsen durch eine solche API wird der Schlüsseltyp als scheme angezeigt, und die Nutzdaten lauten path. Die Verwendung von Abfragen oder Fragmenten ist reserviert.

Siehe auch QSharedMemory und QSystemSemaphore.

Dokumentation zu Mitgliedstypen

enum class QNativeIpcKey::Type

Diese Enumeration beschreibt den Backend-Typ für das IPC-Objekt. Einzelheiten zu den Schlüsseltypen finden Sie in der Dokumentation zu „Native IPC Keys “.

KonstanteWertBeschreibung
QNativeIpcKey::Type::SystemV0x51X/Open System Initiative (XSI) oder System V (SVr4) API
QNativeIpcKey::Type::PosixRealtime0x100IEEE 1003.1b (POSIX.1b)-API
QNativeIpcKey::Type::Windows0x101Win32-API

Siehe auch setType() und type().

Dokumentation der Mitgliedsfunktionen

[constexpr noexcept default] QNativeIpcKey::QNativeIpcKey()

Erstellt ein QNativeIpcKey-Objekt vom Typ „ DefaultTypeForOs “ mit einem leeren Schlüssel.

[explicit constexpr noexcept] QNativeIpcKey::QNativeIpcKey(QNativeIpcKey::Type type)

QNativeIpcKey::QNativeIpcKey(const QString &key, QNativeIpcKey::Type type = DefaultTypeForOs)

Erstellt ein „ QNativeIpcKey “-Objekt, das native Schlüssel key en enthält (bzw. leer ist bei der Überladung ohne Parameter) für den Typ „ type “.

[noexcept] QNativeIpcKey::~QNativeIpcKey()

Entsorgt dieses „ QNativeIpcKey “-Objekt.

[static] QNativeIpcKey QNativeIpcKey::fromString(const QString &text)

Analysiert die Zeichenkette aus text und gibt den entsprechenden QNativeIpcKey zurück. Zeichenkettendarstellungen sind nützlich, um andere Prozesse über den Schlüssel zu informieren, den dieser Prozess erstellt hat und an den sie sich anhängen sollten.

Wenn die Zeichenkette nicht analysiert werden konnte, gibt diese Funktion ein „ invalid “-Objekt zurück.

Siehe auch toString() und isValid().

[noexcept] bool QNativeIpcKey::isEmpty() const

Gibt „true“ zurück, wenn die Funktion „ nativeKey()“ leer ist.

Siehe auch nativeKey().

[noexcept] bool QNativeIpcKey::isValid() const

Gibt „true“ zurück, wenn dieses Objekt einen gültigen nativen IPC-Schlüsseltyp enthält. Ungültige Typen sind in der Regel darauf zurückzuführen, dass die Analyse einer Zeichenfolgendarstellung mit der Funktion ` fromString()` fehlgeschlagen ist.

Diese Funktion führt keine Überprüfung durch, ob die Schlüsselzeichenfolge vom aktuellen Betriebssystem tatsächlich unterstützt wird oder gültig ist.

Siehe auch ` type()` und ` fromString()`.

[static noexcept] QNativeIpcKey::Type QNativeIpcKey::legacyDefaultTypeForOs()

Gibt die ` Type ` zurück, die dem nativen IPC-Schlüssel entspricht, den ` QSharedMemory ` und ` QSystemSemaphore ` vor Qt 6.6 verwendet haben. Anwendungen und Bibliotheken, die die Kompatibilität mit Code gewährleisten müssen, der eine dieser Klassen verwendet und mit Qt vor Version 6.6 kompiliert wurde, können diese Funktion nutzen, um festzustellen, welchen IPC-Typ die anderen Anwendungen möglicherweise verwenden.

Beachten Sie, dass diese Funktion davon abhängt, dass Qt mit identischen Optionen bei der Konfiguration erstellt wurde.

[noexcept] QString QNativeIpcKey::nativeKey() const

Gibt die diesem Objekt zugeordnete native Schlüsselzeichenfolge zurück.

Siehe auch setNativeKey() und type().

void QNativeIpcKey::setNativeKey(const QString &newKey)

Setzt den nativen Schlüssel für dieses Objekt auf „ newKey “.

Siehe auch „ nativeKey()“ und „ setType()“.

[constexpr] void QNativeIpcKey::setType(QNativeIpcKey::Type type)

Setzt den IPC-Typ dieses Objekts auf „ type “.

Siehe auch „ type()“ und „ setNativeKey()“.

[noexcept] void QNativeIpcKey::swap(QNativeIpcKey &other)

Tauscht diesen nativen IPC-Schlüssel und -Typ gegen „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

QString QNativeIpcKey::toString() const

Gibt die Zeichenfolgendarstellung dieses Objekts zurück. Zeichenfolgendarstellungen sind nützlich, um andere Prozesse über den von diesem Prozess erstellten Schlüssel zu informieren, an den sie sich anhängen sollen.

Diese Funktion gibt eine leere Zeichenkette zurück, wenn das aktuelle Objekt „ invalid “ ist.

Siehe auch ` fromString()`.

[constexpr noexcept] QNativeIpcKey::Type QNativeIpcKey::type() const

Gibt den diesem Objekt zugeordneten Schlüsseltyp zurück.

Siehe auch „ nativeKey()“ und „ setType()“.

[noexcept] QNativeIpcKey &QNativeIpcKey::operator=(QNativeIpcKey &&other)

QNativeIpcKey &QNativeIpcKey::operator=(const QNativeIpcKey &other)

[noexcept] QNativeIpcKey::QNativeIpcKey(QNativeIpcKey &&other)

QNativeIpcKey::QNativeIpcKey(const QNativeIpcKey &other)

Kopiert oder verschiebt den Inhalt von „ other “.

Dokumentation zu Member-Variablen

const QNativeIpcKey::Type QNativeIpcKey::DefaultTypeForOs

Diese Konstantenvariable enthält den standardmäßigen nativen IPC-Typ für das aktuelle Betriebssystem. Bei Windows-Systemen lautet sie „ Type::Windows “, bei allen anderen Systemen „ Type::PosixRealtime “. Beachten Sie, dass sich diese Konstante von den Standardwerten „ QSharedMemory “ und „ QSystemSemaphore “ unterscheidet, die vor Qt 6.6 auf den meisten Unix-Systemen galten; weitere Informationen finden Sie unter legacyDefaultTypeForOs().

Verwandte Nicht-Mitglieder

[noexcept] size_t qHash(const QNativeIpcKey &key, size_t seed = 0)

Gibt den Hashwert für key zurück, wobei seed als Startwert für die Berechnung verwendet wird.

[noexcept] void swap(QNativeIpcKey &value1, QNativeIpcKey &value2)

Tauscht den nativen IPC-Schlüssel und die Typ value1 ation mit „ value2 “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

[noexcept] bool operator!=(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)

[noexcept] bool operator==(const QNativeIpcKey &lhs, const QNativeIpcKey &rhs)

Gibt „true“ zurück, wenn die Objekte „ lhs “ und „ rhs “ denselben (oder unterschiedlichen) Inhalt haben.

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