QSysInfo Class

QSysInfo 클래스는 시스템에 대한 정보를 제공합니다. 더 보기...

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

공용 유형

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

정적 공개 멤버

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

상세 설명

  • WordSize 애플리케이션이 컴파일되는 플랫폼에 대한 포인터의 크기를 지정합니다.
  • ByteOrder 플랫폼이 빅엔디안인지 리틀엔디안인지 지정합니다.

일부 상수는 특정 플랫폼에서만 정의됩니다. 전처리기 심볼 Q_OS_WINQ_OS_MACOS 을 사용하여 애플리케이션이 Windows 또는 macOS에서 컴파일되는지 테스트할 수 있습니다.

QLibraryInfo도 참조하세요 .

멤버 유형 문서

enum QSysInfo::Endian

상수설명
QSysInfo::BigEndian0빅 엔디안 바이트 순서(네트워크 바이트 순서라고도 함)
QSysInfo::LittleEndian1리틀 엔디안 바이트 순서
QSysInfo::ByteOrderBigEndian or LittleEndian플랫폼의 바이트 순서에 따라 빅엔디안 또는 리틀엔디안과 같습니다.

enum QSysInfo::Sizes

이 열거형은 기본 아키텍처에서 사용하는 데이터 구조의 크기에 대한 플랫폼별 정보를 제공합니다.

Constant설명
QSysInfo::WordSize(sizeof(void *)<<3)애플리케이션이 컴파일되는 플랫폼에 대한 포인터의 비트 단위 크기(32 또는 64)입니다.

멤버 함수 문서

[static] QByteArray QSysInfo::bootUniqueId()

이 머신의 부팅에 대한 고유 ID를 확인할 수 있는 경우 이를 반환합니다. 고유 ID를 확인할 수 없는 경우 이 함수는 빈 바이트 배열을 반환합니다. 이 값은 부팅할 때마다 변경될 것으로 예상되며 전 세계적으로 고유한 것으로 간주될 수 있습니다.

이 함수는 현재 Linux 및 Apple 운영 체제에 대해서만 구현되어 있습니다.

machineUniqueId()도 참조하세요 .

[static] QString QSysInfo::buildAbi()

Qt가 컴파일된 전체 아키텍처 문자열을 반환합니다. 이 문자열은 호환되지 않는 다른 빌드를 식별하는 데 유용합니다. 예를 들어 서버에서 업그레이드 패키지를 요청하기 위한 식별자로 사용할 수 있습니다.

이 함수에서 반환되는 값은 다음과 같이 안정적으로 유지됩니다: 결과의 필수 구성 요소는 향후 버전의 Qt에서 변경되지 않지만, 선택적 접미사가 추가될 수 있습니다.

반환된 값은 대시("-")로 구분된 세 개 이상의 부분으로 구성됩니다. 다음과 같습니다:

컴포넌트Value
CPU 아키텍처QSysInfo::buildCpuArchitecture()와 동일합니다(예: "arm", "i386", "mips" 또는 "x86_64").
엔디안"little_endian" 또는 "big_endian"
단어 크기32비트 애플리케이션인지 64비트 애플리케이션인지 여부입니다. 가능한 값은 다음과 같습니다: "llp64"(Windows 64비트), "lp64"(Unix 64비트), "ilp32"(32비트)
(선택 사항) ABI이 아키텍처에서 가능한 다른 ABI를 식별하는 0개 이상의 컴포넌트. 현재 Qt에는 ARM 및 MIPS 프로세서를 위한 선택적 ABI 컴포넌트가 있습니다: 하나는 기본 ABI("eabi", "o32", "n32", "o64" 등)이고 다른 하나는 호출 규칙이 하드웨어 부동 소수점 레지스터를 사용하는지("hardfloat"가 있는 경우) 여부입니다.

또한 Qt가 -qreal float 로 구성된 경우 ABI 옵션 태그 "qreal_float"가 존재할 것입니다. Qt가 다른 타입을 qreal로 구성한 경우, 해당 타입은 "qreal_" 뒤에 문자와 숫자를 제외한 모든 문자를 밑줄로 이스케이프 처리한 다음 두 개의 16진수로 표시됩니다. 예를 들어 -qreal long double 은 "qreal_long_20double"이 됩니다.

QSysInfo::buildCpuArchitecture()도 참조하세요 .

[static] QString QSysInfo::buildCpuArchitecture()

Qt가 컴파일된 CPU의 아키텍처를 텍스트 형식으로 반환합니다. 에뮬레이션 계층이 있거나 CPU가 여러 아키텍처를 지원하는 경우(예: x86-64 프로세서가 i386 애플리케이션을 지원하는 경우) 애플리케이션이 실행 중인 실제 CPU와 일치하지 않을 수 있다는 점에 유의하세요. 이를 감지하려면 currentCpuArchitecture()를 사용합니다.

이 함수가 반환하는 값은 안정적이며 시간이 지나도 변하지 않으므로 시간이 지나면서 새로운 CPU 유형이 추가될 수 있다는 점을 제외하고는 애플리케이션에서 반환된 값을 식별자로 사용할 수 있습니다.

일반적인 반환 값은 다음과 같습니다(참고: 목록은 완전하지 않습니다):

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

QSysInfo::buildAbi() 및 QSysInfo::currentCpuArchitecture()도 참조하세요 .

[static] QString QSysInfo::currentCpuArchitecture()

애플리케이션이 실행 중인 CPU의 아키텍처를 텍스트 형식으로 반환합니다. 이 함수는 OS가 보고하는 내용에 따라 달라지며, OS가 해당 정보를 숨기거나 제공할 수 없는 경우 실제 CPU 아키텍처를 감지하지 못할 수도 있습니다. 예를 들어 64비트 CPU에서 실행되는 32비트 OS는 일반적으로 CPU가 실제로 64비트 프로그램을 실행할 수 있는지 확인할 수 없습니다.

이 함수가 반환하는 값은 대부분 안정적입니다. 시간이 지나도 일정하게 유지되고 QSysInfo::builldCpuArchitecture()가 반환하는 값과 일치하도록 시도합니다. 그러나 사용되는 운영 체제 함수의 특성으로 인해 불일치가 있을 수 있습니다.

일반적인 반환 값은 다음과 같습니다(참고: 전체 목록은 아닙니다):

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

QSysInfo::buildAbi() 및 QSysInfo::buildCpuArchitecture()도 참조하세요 .

[static] QString QSysInfo::kernelType()

Qt가 컴파일된 운영 체제 커널의 유형을 반환합니다. 호스트 운영 체제가 호환성이나 가상화 계층을 실행하고 있지 않는 한, 응용 프로그램이 실행 중인 커널이기도 합니다.

이 함수가 반환하는 값은 안정적이며 시간이 지나도 변경되지 않으므로, 시간이 지나면서 새로운 OS 커널 유형이 추가될 수 있다는 점을 제외하면 애플리케이션은 반환된 값을 식별자로 사용할 수 있습니다.

Windows에서 이 함수는 "winnt"와 같은 Windows 커널 유형을 반환합니다. 유닉스 시스템에서는 uname -s (소문자)의 출력과 동일한 값을 반환합니다.

참고: 이 함수는 의외의 값을 반환할 수 있습니다. Linux를 실행하는 모든 운영 체제(Android 포함)의 경우 "linux", QNX를 실행하는 모든 운영 체제의 경우 "qnx", Debian/kFreeBSD의 경우 "freebsd", macOS 및 iOS의 경우 "darwin"을 반환합니다. 애플리케이션이 실행 중인 제품 유형에 대한 자세한 내용은 productType()를 참조하세요.

QFileSelector, kernelVersion(), productType(), productVersion() 및 prettyProductName()도 참조하세요 .

[static] QString QSysInfo::kernelVersion()

운영 체제 커널의 릴리스 버전을 반환합니다. Windows에서는 NT 커널의 버전을 반환합니다. Android 및 macOS를 포함한 유닉스 시스템에서는 uname -r 명령이 반환하는 것과 동일한 결과를 반환합니다. VxWorks에서는 kernelVersion()이 보고한 문자열의 숫자 부분을 반환합니다.

버전을 확인할 수 없는 경우 이 함수는 빈 문자열을 반환할 수 있습니다.

kernelType(), productType(), productVersion() 및 prettyProductName()도 참조하십시오 .

[static] QString QSysInfo::machineHostName()

이 머신의 호스트 이름이 구성된 경우 호스트 이름을 반환합니다. 특히 호스트 이름이 자동으로 구성된 경우에는 호스트 이름이 전 세계적으로 고유하다는 보장이 없다는 점에 유의하세요.

이 함수는 반환된 호스트 이름이 FQDN(정규화된 도메인 이름)임을 보장하지 않습니다. 이 경우 QHostInfo 을 사용하여 반환된 이름을 FQDN으로 확인합니다.

이 함수는 QHostInfo::localHostName()와 동일한 결과를 반환합니다.

QHostInfo::localDomainNamemachineUniqueId()도 참조하세요 .

[static] QByteArray QSysInfo::machineUniqueId()

이 머신의 고유 ID를 확인할 수 있는 경우 이를 반환합니다. 고유 ID를 확인할 수 없는 경우 이 함수는 빈 바이트 배열을 반환합니다. machineHostName ()와 달리 이 함수가 반환하는 값은 전 세계적으로 고유할 가능성이 높습니다.

고유 ID는 네트워크 운영에서 IP 주소가 변경되거나 컴퓨터가 둘 이상의 IP 주소를 가질 수 있는 경우 장기간 동안 이 컴퓨터를 식별하는 데 유용합니다. 예를 들어 서버와 통신할 때나 공유 네트워크 스토리지에 디바이스별 데이터를 저장할 때 이 ID를 사용할 수 있습니다.

일부 시스템에서는 이 값이 재부팅 시에도 유지되는 반면, 일부 시스템에서는 유지되지 않을 수도 있습니다. 애플리케이션은 OS 기능을 확인하지 않고 이 사실에 맹목적으로 의존해서는 안 됩니다. 특히 Linux 시스템에서 이 ID는 일반적으로 영구적이며 자체 스토리지가 없는 노드(복제된 노드)를 제외하고는 D-Bus 머신 ID와 일치합니다.

machineHostName() 및 bootUniqueId()도 참조하세요 .

[static] QString QSysInfo::prettyProductName()

운영 체제 유형, 코드명 및 기타 정보와 같은 다른 토큰을 포함하는 productType() 및 productVersion()의 더 예쁜 형태를 반환합니다. 이 함수의 결과는 사용자에게 표시하는 데는 적합하지만, Qt 업데이트에 따라 문자열이 변경될 수 있으므로 장기 저장에는 적합하지 않습니다.

productType()가 "알 수 없음"인 경우 이 함수는 kernelType() 및 kernelVersion() 함수를 대신 사용합니다.

kernelType(), kernelVersion(), productType() 및 productVersion()도 참조하십시오 .

[static] QString QSysInfo::productType()

이 애플리케이션이 실행 중인 운영 체제의 제품명을 반환합니다. 애플리케이션이 일종의 에뮬레이션 또는 가상화 계층(예: 유닉스 시스템의 WINE)에서 실행 중인 경우 이 함수는 에뮬레이션/가상화 계층을 검사합니다.

이 함수가 반환하는 값은 안정적이며 시간이 지나도 변경되지 않으므로 애플리케이션은 시간이 지나면서 새로운 OS 유형이 추가될 수 있다는 점을 제외하고는 반환된 값을 식별자로 사용할 수 있습니다.

Linux 및 Android 참고: 이 함수는 특히 Bionic 라이브러리를 사용할 때 Android 사용자 공간을 실행하는 Linux 시스템의 경우 "android"를 반환합니다. 다른 모든 Linux 시스템의 경우 사용 중인 C 라이브러리에 관계없이 배포 이름을 확인하여 해당 이름을 반환합니다. 배포 이름을 확인하는 데 실패하면 "알 수 없음"을 반환합니다.

macOS 참고: 이 함수는 Apple 명명 규칙에 관계없이 모든 macOS 시스템에 대해 "macos"를 반환합니다. 이전에는 Qt 5에서 Apple 명명 규칙에 관계없이 "osx"를 반환했습니다.

Darwin, iOS, tvOS 및 watchOS 참고: 이 함수는 iOS 시스템의 경우 "ios", tvOS 시스템의 경우 "tvos", watchOS 시스템의 경우 "watchos"를 반환하고 시스템을 확인할 수 없는 경우 "darwin"을 반환합니다.

FreeBSD 참고: 이 함수는 Debian/kFreeBSD의 경우 "debian"을 반환하고 그렇지 않으면 "알 수 없음"을 반환합니다.

Windows 참고: 이 함수는 "windows"를 반환합니다.

VxWorks 참고: 이 함수는 "vxworks"를 반환합니다.

다른 유닉스 유형 시스템의 경우 이 함수는 일반적으로 "알 수 없음"을 반환합니다.

QFileSelector, kernelType(), kernelVersion(), productVersion() 및 prettyProductName()도 참조하십시오 .

[static] QString QSysInfo::productVersion()

운영 체제의 제품 버전을 문자열 형식으로 반환합니다. 버전을 확인할 수 없는 경우 이 함수는 "알 수 없음"을 반환합니다.

이 함수는 해당 시스템의 Android, iOS, macOS, VxWorks, Windows 정식 제품 버전을 반환합니다.

반환되는 일반적인 값은 다음과 같습니다(참고: 목록은 완전하지 않음):

  • "12"(Android 12)
  • "36"(Fedora 36)
  • "15.5"(iOS 15.5)
  • "12.4"(macOS 몬터레이)
  • "22.04"(우분투 22.04)
  • "8.6"(watchOS 8.6)
  • "11"(Windows 11)
  • "서버 2022"(윈도우 서버 2022)
  • "24.03"(VxWorks 7 - 24.03)

Linux 시스템에서는 배포 버전을 확인하여 해당 버전을 반환합니다. 이 작업은 Debian/kFreeBSD에서도 수행되므로 이 함수는 이 경우 Debian 버전을 반환합니다.

다른 모든 유닉스 유형 시스템에서는 이 함수가 항상 "알 수 없음"을 반환합니다.

참고: 이 함수에서 반환되는 버전 문자열은 순서가 보장되지 않습니다. Linux에서는 배포판의 버전이 예기치 않게 점프할 수 있으므로 배포판의 문서에서 버전 관리 방법을 참조하세요.

kernelType(), kernelVersion(), productType() 및 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.