이 페이지에서

QNativeIpcKey Class

QNativeIpcKey 클래스는 QSystemSemaphore 및 QSharedMemory 에서 사용되는 네이티브 키를 보관합니다. 더 보기...

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

QNativeIpcKey 비교

범주비교 가능한 유형
동등성QNativeIpcKey

공개 유형

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)

상세 설명

QSharedMemory 및 QSystemSemaphore 클래스는 "키"로 알려진 시스템 전체 식별자를 사용하여 자원을 식별합니다. 저수준 키 값과 키 유형은 Qt에서 QNativeIpcKey 클래스를 사용하여 캡슐화됩니다.

이 두 클래스는 또한 QSharedMemory::platformSafeKey() 및 QSystemSemaphore::platformSafeKey()를 사용하여 크로스 플랫폼 식별자에서 네이티브 키를 생성하는 수단을 제공합니다. Qt의 버전에 따라 서로 다른 변환이 수행되어 서로 다른 네이티브 키가 생성될 수 있으므로, 애플리케이션은 이러한 함수에 대한 입력을 절대로 공유해서는 안 됩니다. 대신, IPC 객체를 생성한 애플리케이션은 아래에 설명된 방법을 사용하여 결과로 생성된 네이티브 키를 전달해야 합니다.

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

다른 프로세스에 키 전달

다른 Qt 프로세스에 키 전달

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

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

Qt가 아닌 프로세스에 키 전달하기

Qt가 아닌 프로세스와 통신할 때, 애플리케이션은 상대방 프로세스가 사용하는 키 유형을 확보할 수 있도록 조치해야 합니다. 이는 특히 PosixRealtime 와 SystemV 가 모두 흔히 사용되는 유닉스 시스템에서 중요합니다.

네이티브 키의 문자열 표현

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 이 됩니다. 쿼리 또는 프래그먼트의 사용은 예약되어 있습니다.

QSharedMemory 및 QSystemSemaphore도 참조하십시오 .

멤버 유형 문서

enum class QNativeIpcKey::Type

이 열거형은 IPC 객체의 백엔드 유형을 나타냅니다. 키 유형에 대한 자세한 내용은 ‘Native IPC Keys’ 문서를 참조하십시오.

상수값설명
QNativeIpcKey::Type::SystemV0x51X/Open System Initiative (XSI) 또는 System V (SVr4) API
QNativeIpcKey::Type::PosixRealtime0x100IEEE 1003.1b (POSIX.1b) API
QNativeIpcKey::Type::Windows0x101Win32 API

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

멤버 함수 설명서

[constexpr noexcept default] QNativeIpcKey::QNativeIpcKey()

DefaultTypeForOs 유형의 QNativeIpcKey 객체를 키가 비어 있는 상태로 생성합니다.

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

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

type 유형에 대해 네이티브 키 key 를 포함하는(매개변수가 없는 오버로드의 경우 비어 있는) 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()

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

이 함수는 Qt가 동일한 configure 단계 옵션으로 빌드되었을 때만 정상적으로 작동한다는 점에 유의하십시오.

[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)

other 를 사용하여 이 네이티브 IPC 키와 유형을 교체합니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.

QString QNativeIpcKey::toString() const

이 객체의 문자열 표현을 반환합니다. 문자열 표현은 다른 프로세스들에게 이 프로세스가 생성한 키와, 해당 키에 연결해야 함을 알리는 데 유용합니다.

현재 객체가 ` invalid`인 경우, 이 함수는 빈 문자열을 반환합니다.

fromString()도 참조하십시오 .

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

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

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

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

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

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

QNativeIpcKey::QNativeIpcKey(const QNativeIpcKey &other)

other 의 내용을 복사하거나 이동합니다.

멤버 변수 문서

const QNativeIpcKey::Type QNativeIpcKey::DefaultTypeForOs

이 상수 표현식 변수는 현재 OS의 기본 네이티브 IPC 유형을 저장합니다. Windows 시스템에서는 ` Type::Windows `이며, 그 외의 시스템에서는 ` Type::PosixRealtime `입니다. 이 상수는 Qt 6.6 이전 대부분의 Unix 시스템에서 ` QSharedMemory ` 및 ` QSystemSemaphore `의 기본값과는 다르다는 점에 유의하십시오. 자세한 내용은 legacyDefaultTypeForOs()을 참조하십시오.

관련 비회원 변수

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

seed 를 계산의 시드로 사용하여 key 에 대한 해시 값을 반환합니다.

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

네이티브 IPC 키와 유형 value1 을 value2 로 바꿉니다. 이 작업은 매우 빠르며 절대 실패하지 않습니다.

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

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

lhs 와 rhs 객체의 내용이 동일하거나 다른 경우 true를 반환합니다.

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