Spec-Zone.ru › Qt 6.0

Класс 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)
  • «7 SP 1» (Windows 7 Service Pack 1)
  • «8.1» (Windows 8.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.0/qsysinfo.html

Spec-Zone.ru

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