QNativeIpcKey Class

QNativeIpcKey 클래스는 QSystemSemaphoreQSharedMemory 에서 사용하는 네이티브 키를 보유합니다. 더 보기...

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

이 클래스는 동등 비교가 가능합니다.

공용 형

enum class Type { SystemV, PosixRealtime, Windows }

공용 함수

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)

정적 공용 멤버

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)

상세 설명

QSharedMemoryQSystemSemaphore 클래스는 "키"라고 하는 시스템 전체 식별자를 사용하여 리소스를 식별합니다. 저수준 키 값과 키 유형은 QNativeIpcKey 클래스를 사용하여 Qt로 캡슐화됩니다.

이 두 클래스는 또한 QSharedMemory::platformSafeKey() 및 QSystemSemaphore::platformSafeKey()를 사용하여 크로스 플랫폼 식별자로부터 네이티브 키를 생성할 수 있는 수단을 제공합니다. 응용 프로그램에서 이러한 함수에 대한 입력을 공유해서는 안 되는데, Qt 버전마다 다른 변환을 수행하여 기본 키가 달라질 수 있기 때문입니다. 대신, IPC 객체를 생성한 애플리케이션은 아래에 설명된 메서드를 사용하여 결과 네이티브 키를 전달해야 합니다.

키 유형, 플랫폼별 제한 사항 및 구형 또는 비 Qt 애플리케이션과의 상호 운용성에 대한 자세한 내용은 네이티브 IPC 키 문서를 참조하세요. 여기에는 Apple 앱 스토어를 통해 얻은 모든 앱을 포함하여 Apple 플랫폼의 샌드박스 애플리케이션에 대한 중요한 정보가 포함되어 있습니다.

다른 프로세스에 키 전달하기

다른 Qt 프로세스에 키 전달하기

다른 프로세스가 QNativeIpcKey를 지원하는 경우, 가장 좋은 통신 방법은 toString()에서 얻은 문자열 표현을 fromString()을 사용하여 구문 분석하는 것입니다. 이 표현은 이름이 잘 알려진 파일에 저장하거나 QProcess::setArguments()를 사용하여 명령줄에서 하위 프로세스에 전달할 수 있습니다.

다른 프로세스가 QNativeIpcKey를 지원하지 않는 경우 두 프로세스가 nativeKey()를 교환할 수 있지만 이전 코드는 키 유형을 조정할 수 없을 가능성이 높습니다. legacyDefaultTypeForOs () 함수는 레거시 코드가 사용했던 유형을 반환하며, 이는 DefaultTypeForOs 상수와 일치하지 않을 수 있습니다. 이는 이전 애플리케이션이 새 애플리케이션과 동일한 빌드를 사용하지 않는 경우(예: Qt 5 애플리케이션)에도 Qt 구성 스크립트에 전달된 옵션이 동일하다면 여전히 유효합니다.

Qt가 아닌 프로세스와 키 통신하기

Qt가 아닌 프로세스와 통신할 때 애플리케이션은 다른 프로세스가 사용 중인 키 유형을 가져와야 합니다. 이는 PosixRealtimeSystemV 가 모두 일반적인 유닉스 시스템에서 특히 중요합니다.

기본 키의 문자열 표현

QNativeIpcKey의 문자열 표현 형식은 해당 키 유형이 해당 Qt 버전에서 지원되는 경우 안정적이므로 이전 버전과 호환되도록 설계되었습니다. 즉, 이전 Qt는 릴리스 이후에 도입된 키 유형의 문자열 표현을 구문 분석하지 못합니다. 그러나 문자열 표현을 성공적으로 구문 분석했다고 해서 Qt 클래스가 해당 유형의 객체를 성공적으로 생성할 수 있다는 의미는 아니며, 응용 프로그램은 QSharedMemory::isKeyTypeSupported() 및 QSystemSemaphore::isKeyTypeSupported()를 사용하여 지원 여부를 확인해야 합니다.

문자열 표현의 형식은 콜론(':')으로 구분된 두 가지 구성 요소로 구성됩니다. 첫 번째 구성 요소는 아래 표에 설명된 키 유형입니다. 두 번째 구성 요소는 percent-encoding 를 사용하는 유형별 페이로드입니다. 현재 지원되는 모든 키 유형의 경우 디코딩된 형식은 nativeKey() 필드의 내용과 동일합니다.

키 유형문자열 표현
PosixRealtime"posix"
SystemV"systemv"
Windows"windows"
비표준 SystemV"systemv-" 뒤에 소수점 숫자

이 형식은 URI와 유사하며 QUrl 와 같은 URI/URL 파싱 함수를 사용하여 파싱할 수 있습니다. 이러한 API로 구문 분석할 때 키 유형은 scheme 로 표시되고 페이로드는 path 로 표시됩니다. 쿼리 또는 조각의 사용은 유보됩니다.

QSharedMemoryQSystemSemaphore참조하세요 .

멤버 유형 문서

enum class QNativeIpcKey::Type

이 열거형은 IPC 객체의 백엔드 유형을 설명합니다. 키 유형에 대한 자세한 내용은 네이티브 IPC 키 문서를 참조하세요.

Constant설명
QNativeIpcKey::Type::SystemV0x51X/오픈 시스템 이니셔티브(XSI) 또는 시스템 V(SVr4) API
QNativeIpcKey::Type::PosixRealtime0x100IEEE 1003.1b(POSIX.1b) API
QNativeIpcKey::Type::Windows0x101Win32 API

setType() 및 type()도 참조하세요 .

멤버 함수 문서

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

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

타입 type 에 대해 네이티브 키 key (또는 매개변수가 없는 오버로드에서는 비어 있음)를 보유한 QNativeIpcKey 객체를 생성합니다.

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

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

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

QNativeIpcKey::QNativeIpcKey(const QNativeIpcKey &other)

other 의 콘텐츠를 복사하거나 이동합니다.

[constexpr noexcept] QNativeIpcKey::QNativeIpcKey()

빈 키가 있는 DefaultTypeForOs 타입의 QNativeIpcKey 객체를 생성합니다.

[noexcept] QNativeIpcKey::~QNativeIpcKey()

QNativeIpcKey 개체를 폐기합니다.

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

문자열 형식 text 을 구문 분석하고 해당 QNativeIpcKey 을 반환합니다. 문자열 표현은 이 프로세스가 생성한 키와 첨부해야 하는 키를 다른 프로세스에 알리는 데 유용합니다.

문자열을 구문 분석할 수 없는 경우 이 함수는 invalid 객체를 반환합니다.

toString() 및 isValid()도 참조하세요 .

[noexcept] bool QNativeIpcKey::isEmpty() const

nativeKey()가 비어 있으면 true를 반환합니다.

nativeKey()도 참조하세요 .

[noexcept] bool QNativeIpcKey::isValid() const

이 객체에 유효한 네이티브 IPC 키 유형이 포함되어 있으면 true를 반환합니다. 잘못된 유형은 일반적으로 fromString()를 사용하여 문자열 표현을 구문 분석하지 못한 결과입니다.

이 함수는 키 문자열이 현재 운영 체제에서 실제로 지원되는지 또는 유효한지 여부를 확인하지 않습니다.

type() 및 fromString()도 참조하세요 .

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

QSharedMemoryQSystemSemaphore 이 Qt 6.6 이전에 사용하던 네이티브 IPC 키에 해당하는 Type 을 반환합니다. 버전 6.6 이전에 Qt로 컴파일된 클래스를 사용하는 코드와의 호환성을 유지해야 하는 애플리케이션 및 라이브러리는 이 함수를 사용하여 다른 애플리케이션이 사용할 수 있는 IPC 유형을 확인할 수 있습니다.

이 함수는 동일한 구성 시간 옵션으로 빌드된 Qt에 의존한다는 점에 유의하세요.

[noexcept] QString QNativeIpcKey::nativeKey() const

이 객체와 연관된 기본 키 문자열을 반환합니다.

setNativeKey() 및 type()도 참조하세요 .

void QNativeIpcKey::setNativeKey(const QString &newKey)

이 객체의 기본 키를 newKey 로 설정합니다.

nativeKey() 및 setType()도 참조하세요 .

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

이 객체의 IPC 유형을 type 로 설정합니다.

type() 및 setNativeKey()도 참조하세요 .

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

이 기본 IPC 키와 유형을 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.

QString QNativeIpcKey::toString() const

이 객체의 문자열 표현을 반환합니다. 문자열 표현은 이 프로세스가 생성한 키와 첨부해야 하는 키를 다른 프로세스에 알리는 데 유용합니다.

현재 개체가 invalid 인 경우 이 함수는 null 문자열을 반환합니다.

fromString()도 참조하세요 .

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

이 객체와 연관된 키 유형을 반환합니다.

nativeKey() 및 setType()도 참조하십시오 .

멤버 변수 문서

const QNativeIpcKey::Type QNativeIpcKey::DefaultTypeForOs

이 상수 표현식 변수는 현재 OS의 기본 네이티브 IPC 유형을 보유합니다. Windows 시스템에서는 Type::Windows, 그 외의 시스템에서는 Type::PosixRealtime 입니다. 이 상수는 Qt 6.6 이전 대부분의 Unix 시스템에서 QSharedMemoryQSystemSemaphore 의 기본값과 다릅니다. 자세한 내용은 legacyDefaultTypeForOs()를 참조하세요.

관련 비회원

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

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

lhsrhs 객체가 동일한(또는 다른) 콘텐츠를 보유할 경우 true를 반환합니다.

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

seed 을 사용하여 key 에 대한 해시값을 반환합니다.

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

기본 IPC 키를 바꾸고 value1value2 으로 입력합니다. 이 작업은 매우 빠르며 실패하지 않습니다.

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