Spec-Zone.ru › Qt

Класс QSysInfo

Класс QSysInfo предоставляет информацию о системе. Подробнее...

Заголовок: #include <QSysInfo>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
  • Список всех членов, включая унаследованные

Типы публичного доступа

Перечисление Endian { BigEndian, LittleEndian, ByteOrder }
Перечисление 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 указывает, является ли платформа big-endian или little-endian.

Некоторые константы определены только на определённых платформах. Вы можете использовать препроцессорные символы Q_OS_WIN и Q_OS_MACOS, чтобы проверить, скомпилировано ли приложение под Windows или macOS.

См. также QLibraryInfo.

Документация по типам членов

Перечисление QSysInfo::Endian

Константа Значение Описание
QSysInfo::BigEndian 0 Порядок байтов big-endian (также называется сетевым порядком байтов)
QSysInfo::LittleEndian 1 Порядок байтов little-endian
QSysInfo::ByteOrder BigEndian or LittleEndian Равно BigEndian или LittleEndian, в зависимости от порядка байтов платформы.

Перечисление QSysInfo::Sizes

Это перечисление предоставляет платформоспецифическую информацию о размерах структур данных, используемых базовой архитектурой.

Константа Значение Описание
QSysInfo::WordSize (sizeof(void *)<<3) Размер указателя в битах для платформы, на которой скомпилировано приложение (32 или 64).

Документация по функциям-членам

[static, since 5.11] QByteArray QSysInfo::bootUniqueId()

Возвращает уникальный идентификатор загрузки этой машины, если он может быть определён. Если уникальный идентификатор определить не удалось, функция возвращает пустой массив байтов. Это значение должно изменяться после каждой загрузки и может считаться глобально уникальным.

В настоящее время эта функция реализована только для операционных систем Linux и Apple.

Эта функция была введена в Qt 5.11.

См. также machineUniqueId().

[static, since 5.4] QString QSysInfo::buildAbi()

Возвращает полную строку архитектуры, для которой был скомпилирован Qt. Эта строка полезна для идентификации различных, несовместимых сборок. Например, она может использоваться в качестве идентификатора для запроса пакета обновления с сервера.

Значения, возвращаемые этой функцией, поддерживаются стабильными следующим образом: обязательные компоненты результата не изменятся в будущих версиях Qt, но могут быть добавлены необязательные суффиксы.

Возвращаемое значение состоит из трёх или более частей, разделённых дефисами ("-"). Это:

Компонент Значение
Архитектура процессора Такая же, как у QSysInfo::buildCpuArchitecture(), например, "arm", "i386", "mips" или "x86_64"
Порядок байтов "little_endian" или "big_endian"
Размер слова Является ли приложение 32- или 64-битным. Возможные значения: "llp64" (Windows 64-бит), "lp64" (Unix 64-бит), "ilp32" (32-бит)
(Необязательно) ABI Ноль или более компонентов, идентифицирующих различные ABI, возможные в этой архитектуре. В настоящее время Qt имеет необязательные компоненты ABI для процессоров ARM и MIPS: один компонент — основной ABI (например, "eabi", "o32", "n32", "o64"); другой — использует ли вызов конвенцию регистров плавающей точки аппаратного обеспечения ("hardfloat" присутствует).

Кроме того, если Qt был сконфигурирован с -qreal float, будет присутствовать тег ABI "qreal_float". Если Qt был сконфигурирован с другим типом как qreal, этот тип присутствует после "qreal_", со всеми символами, кроме букв и цифр, экранированными символом подчёркивания, за которым следуют две шестнадцатеричные цифры. Например, -qreal long double становится "qreal_long_20double".

Эта функция была введена в Qt 5.4.

См. также QSysInfo::buildCpuArchitecture().

[static, since 5.4] QString QSysInfo::buildCpuArchitecture()

Возвращает архитектуру процессора, для которого был скомпилирован Qt, в текстовом формате. Обратите внимание, что это может не совпадать с фактическим процессором, на котором выполняется приложение, если имеется эмуляция или процессор поддерживает несколько архитектур (например, процессоры x86-64, поддерживающие приложения i386). Чтобы обнаружить это, используйте currentCpuArchitecture().

Значения, возвращаемые этой функцией, стабильны и не изменятся со временем, поэтому приложения могут полагаться на возвращаемое значение в качестве идентификатора, за исключением того, что новые типы процессоров могут быть добавлены со временем.

Типичные возвращаемые значения (список неполный):

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

Эта функция была введена в Qt 5.4.

См. также QSysInfo::buildAbi() и QSysInfo::currentCpuArchitecture().

[static, since 5.4] QString QSysInfo::currentCpuArchitecture()

Возвращает архитектуру процессора, на котором выполняется приложение, в текстовом формате. Обратите внимание, что эта функция зависит от того, что сообщит ОС, и может не обнаружить фактическую архитектуру процессора, если ОС скрывает эту информацию или не может её предоставить. Например, 32-битная ОС, работающая на 64-битном процессоре, обычно не может определить, что процессор фактически способен выполнять 64-битные программы.

Возвращаемые значения этой функции в основном стабильны: будет предпринята попытка убедиться, что они остаются постоянными со временем и соответствуют значениям, возвращаемым QSysInfo::builldCpuArchitecture(). Однако из-за природы используемых функций операционной системы могут быть расхождения.

Типичные возвращаемые значения (список неполный):

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

Эта функция была введена в Qt 5.4.

См. также QSysInfo::buildAbi() и QSysInfo::buildCpuArchitecture().

[static, since 5.4] QString QSysInfo::kernelType()

Возвращает тип ядра операционной системы, для которого был скомпилирован Qt. Это также ядро, на котором выполняется приложение, если на хостовой операционной системе не используется совместимый или виртуальный слой.

Возвращаемые значения этой функции стабильны и не изменятся со временем, поэтому приложения могут полагаться на возвращаемое значение в качестве идентификатора, за исключением того, что новые типы ядер ОС могут быть добавлены со временем.

В Windows эта функция возвращает тип ядра Windows, например, "winnt". В Unix-системах она возвращает то же, что и результат uname -s (в нижнем регистре).

Примечание: Эта функция может возвращать неожиданные значения: она возвращает "linux" для всех операционных систем, работающих под Linux (включая Android), "qnx" для всех операционных систем, работающих под QNX, "freebsd" для Debian/kFreeBSD и "darwin" для macOS и iOS. Для получения информации о типе продукта, на котором работает приложение, см. productType().

Эта функция была введена в Qt 5.4.

См. также QFileSelector, kernelVersion(), productType(), productVersion() и prettyProductName().

[static, since 5.4] QString QSysInfo::kernelVersion()

Возвращает версию релиза ядра операционной системы. В Windows она возвращает версию ядра NT. В системах Unix, включая Android и macOS, она возвращает то же самое, что и команда uname -r.

Если версия не может быть определена, эта функция может вернуть пустую строку.

Эта функция была введена в Qt 5.4.

См. также kernelType(), productType(), productVersion() и prettyProductName().

[static, since 5.6] QString QSysInfo::machineHostName()

Возвращает имя хоста этой машины, если оно настроено. Обратите внимание, что имена хостов не гарантированно уникальны во всем мире, особенно если они были настроены автоматически.

Эта функция не гарантирует, что возвращаемое имя хоста является полным доменным именем (FQDN). Для этого используйте QHostInfo для разрешения возвращенного имени в FQDN.

Эта функция возвращает то же самое, что и QHostInfo::localHostName().

Эта функция была введена в Qt 5.6.

См. также QHostInfo::localDomainName и machineUniqueId().

[static, since 5.11] QByteArray QSysInfo::machineUniqueId()

Возвращает уникальный идентификатор этой машины, если он может быть определен. Если уникальный идентификатор определить не удалось, эта функция возвращает пустой массив байтов. В отличие от machineHostName(), возвращаемое значение этой функции, скорее всего, уникально во всем мире.

Уникальный идентификатор полезен при сетевых операциях для идентификации этой машины на длительный период времени, когда IP-адрес может измениться или если у этой машины может быть более одного IP-адреса. Например, идентификатор может использоваться при общении с сервером или при хранении данных, специфичных для устройства, в общем сетевом хранилище.

Обратите внимание, что в некоторых системах это значение сохраняется после перезагрузки, а в некоторых — нет. Приложения не должны слепо полагаться на этот факт без проверки возможностей ОС. В частности, в системах Linux этот идентификатор обычно постоянный и соответствует идентификатору машины D-Bus, за исключением узлов без собственного хранилища (реплицированных узлов).

Эта функция была введена в Qt 5.11.

См. также machineHostName() и bootUniqueId().

[static, since 5.4] QString QSysInfo::prettyProductName()

Возвращает более удобочитаемую форму productType() и productVersion(), содержащую другие токены, такие как тип операционной системы, кодовые названия и другую информацию. Результат этой функции подходит для отображения пользователю, но не для долгосрочного хранения, так как строка может меняться с обновлениями Qt.

Если productType() имеет значение "unknown", эта функция вместо этого использует функции kernelType() и kernelVersion().

Эта функция была введена в Qt 5.4.

См. также kernelType(), kernelVersion(), productType() и productVersion().

[static, since 5.4] QString QSysInfo::productType()

Возвращает имя продукта операционной системы, в которой работает это приложение. Если приложение работает в какой-либо эмуляции или виртуальной машине (например, WINE в Unix-системе), эта функция будет проверять эмуляцию/виртуальную машину.

Значения, возвращаемые этой функцией, стабильны и не изменятся со временем, поэтому приложения могут полагаться на возвращаемое значение в качестве идентификатора, за исключением того, что новые типы ОС могут добавляться со временем.

Примечание для Linux и Android: эта функция возвращает "android" для Linux-систем, работающих с Android-пользовательским пространством, особенно при использовании библиотеки Bionic. Для всех других Linux-систем, независимо от используемой библиотеки C, она пытается определить имя дистрибутива и возвращает его. Если определение имени дистрибутива не удалось, возвращается "unknown".

Примечание для macOS: эта функция возвращает "osx" для всех macOS-систем, независимо от соглашения об именах Apple. Возвращаемая строка будет обновлена для Qt 6. Обратите внимание, что эта функция ошибочно возвращала "macos" для macOS 10.12 в версиях Qt 5.6.2, 5.7.1 и 5.8.0.

Примечание для Darwin, iOS, tvOS и watchOS: эта функция возвращает "ios" для iOS-систем, "tvos" для tvOS-систем, "watchos" для watchOS-систем и "darwin" в случае, если система не может быть определена.

Примечание для FreeBSD: эта функция возвращает "debian" для Debian/kFreeBSD и "unknown" в противном случае.

Примечание для Windows: эта функция возвращает "windows".

Для других систем Unix-подобного типа эта функция обычно возвращает "unknown".

Эта функция была введена в Qt 5.4.

См. также QFileSelector, kernelType(), kernelVersion(), productVersion() и prettyProductName().

[static, since 5.4] QString QSysInfo::productVersion()

Возвращает версию продукта операционной системы в строковом формате. Если версия не может быть определена, эта функция возвращает "unknown".

Она возвращает полные версии Android, iOS, macOS и Windows в этих системах.

Типичные возвращаемые значения (список не исчерпывающий):

  • "2016.09" (Amazon Linux AMI 2016.09)
  • "7.1" (Android Nougat)
  • "25" (Fedora 25)
  • "10.1" (iOS 10.1)
  • "10.12" (macOS Sierra)
  • "10.0" (tvOS 10)
  • "16.10" (Ubuntu 16.10)
  • "3.1" (watchOS 3.1)
  • "10" (Windows 10)
  • "Server 2016" (Windows Server 2016)

В системах Linux она попытается определить версию дистрибутива и вернёт её. Это также делается для Debian/kFreeBSD, поэтому в этом случае функция вернет версию Debian.

Во всех других системах Unix-подобного типа эта функция всегда возвращает "unknown".

Примечание: Строка версии, возвращаемая этой функцией, не гарантируется, что будет упорядочиваемой. В Linux версия дистрибутива может неожиданно измениться, пожалуйста, обратитесь к документации дистрибутива для получения информации о практике версионирования.

Эта функция была введена в Qt 5.4.

См. также kernelType(), kernelVersion(), productType() и prettyProductName().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qsysinfo.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API