Класс QSysInfo
Класс QSysInfo предоставляет информацию о системе. Подробнее...
| Заголовок: | #include <QSysInfo> |
| 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] QByteArray QSysInfo::bootUniqueId()
Возвращает уникальный идентификатор загрузки этой машины, если он может быть определен. Если уникальный идентификатор определить не удалось, эта функция возвращает пустой массив байтов. Это значение ожидается, что оно будет изменяться после каждой загрузки, и может считаться глобально уникальным.
Эта функция в настоящее время реализована только для операционных систем Linux и Apple.
Эта функция была введена в Qt 5.11.
См. также machineUniqueId().
[static] 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 был сконфигурирован с |
Эта функция была введена в Qt 5.4.
См. также QSysInfo::buildCpuArchitecture().
[static] 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] 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] 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] QString QSysInfo::kernelVersion()
Возвращает версию ядра операционной системы. В Windows возвращает версию ядра NT. В системах Unix, включая Android и macOS, возвращает то же значение, что и команда uname -r.
Если версия определить не удалось, функция может вернуть пустую строку.
Функция была добавлена в Qt 5.4.
См. также kernelType(), productType(), productVersion(), и prettyProductName().
[static] QString QSysInfo::machineHostName()
Возвращает имя хоста этой машины, если оно настроено. Обратите внимание, что имена хостов не гарантируют глобальной уникальности, особенно если они были настроены автоматически.
Функция не гарантирует, что возвращаемое имя хоста является полным доменным именем (FQDN). Для этого используйте QHostInfo для преобразования возвращённого имени в FQDN.
Функция возвращает то же значение, что и QHostInfo::localHostName().
Функция была добавлена в Qt 5.6.
См. также QHostInfo::localDomainName и machineUniqueId().
[static] QByteArray QSysInfo::machineUniqueId()
Возвращает уникальный идентификатор этой машины, если он может быть определён. Если уникальный идентификатор определить не удалось, функция возвращает пустой массив байтов. В отличие от machineHostName(), возвращаемое значение этой функции, скорее всего, будет глобально уникальным.
Уникальный идентификатор полезен в сетевых операциях для идентификации этой машины на длительный период времени, когда IP-адрес может измениться или если у этой машины может быть более одного IP-адреса. Например, идентификатор может использоваться при взаимодействии с сервером или при хранении данных, специфичных для устройства, в общем сетевом хранилище.
Обратите внимание, что в некоторых системах это значение сохраняется после перезагрузки, а в некоторых — нет. Приложения не должны слепо полагаться на этот факт без проверки возможностей ОС. В частности, в системах Linux этот идентификатор обычно постоянный и соответствует идентификатору машины D-Bus, за исключением узлов без собственного хранилища (дублированных узлов).
Функция была добавлена в Qt 5.11.
См. также machineHostName() и bootUniqueId().
[static] QString QSysInfo::prettyProductName()
Возвращает более удобную форму productType() и productVersion(), содержащую другие токены, такие как тип операционной системы, кодовые имена и другую информацию. Результат этой функции подходит для отображения пользователю, но не для долгосрочного хранения, так как строка может измениться с обновлением Qt.
Если productType() равна "unknown", функция вместо этого использует функции kernelType() и kernelVersion().
Функция была добавлена в Qt 5.4.
См. также kernelType(), kernelVersion(), productType(), и productVersion().
[static] QString QSysInfo::productType()
Возвращает имя продукта операционной системы, в которой работает данное приложение. Если приложение работает в среде эмуляции или виртуализации (например, WINE в системе Unix), функция проверит слой эмуляции/виртуализации.
Возвращаемые значения этой функции стабильны и не будут изменяться со временем, поэтому приложения могут полагаться на возвращаемое значение в качестве идентификатора, за исключением того, что новые типы ОС могут быть добавлены со временем.
Примечание для Linux и Android: для систем Linux, работающих в среде Android (в частности, при использовании библиотеки Bionic), эта функция возвращает "android". Для всех остальных систем Linux, независимо от используемой библиотеки C, она пытается определить имя дистрибутива и возвращает его. Если определение имени дистрибутива не удалось, она возвращает "unknown".
Примечание для macOS: для всех систем macOS эта функция возвращает "osx", независимо от обозначений Apple. Возвращаемая строка будет обновлена для Qt 6. Обратите внимание, что в версиях Qt 5.6.2, 5.7.1 и 5.8.0 эта функция ошибочно возвращала "macos" для macOS 10.12.
Примечание для Darwin, iOS, tvOS и watchOS: для систем iOS функция возвращает "ios", для tvOS — "tvos", для watchOS — "watchos", а в случае невозможности определения системы — "darwin".
Примечание для FreeBSD: для Debian/kFreeBSD эта функция возвращает "debian", в противном случае — "unknown".
Примечание для Windows: функция возвращает "winrt" для сборок WinRT и "windows" для обычных настольных сборок.
Для других систем Unix-типа эта функция обычно возвращает "unknown".
Функция была добавлена в Qt 5.4.
См. также QFileSelector, kernelType(), kernelVersion(), productVersion(), и prettyProductName().
[static] 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-5.14/qsysinfo.html