Sur cette page

QSysInfo Class

La classe QSysInfo fournit des informations sur le système. Plus d'informations...

En-tête : #include <QSysInfo>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Types publics

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

Membres publics statiques

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

Description détaillée

  • WordSize spécifie la taille d'un pointeur pour la plate-forme sur laquelle l'application est compilée.
  • ByteOrder spécifie si la plate-forme est big-endian ou little-endian.

Certaines constantes ne sont définies que sur certaines plates-formes. Vous pouvez utiliser les symboles du préprocesseur Q_OS_WIN et Q_OS_MACOS pour tester que l'application est compilée sous Windows ou macOS.

Voir également QLibraryInfo.

Documentation sur les types de membres

enum QSysInfo::Endian

ConstanteValeurDescription de l'ordre des octets
QSysInfo::BigEndian0Ordre d'octets big-endian (également appelé ordre d'octets du réseau)
QSysInfo::LittleEndian1Ordre d'octets Little-endian
QSysInfo::ByteOrderBigEndian or LittleEndianÉquivaut à BigEndian ou LittleEndian, selon l'ordre des octets de la plate-forme.

enum QSysInfo::Sizes

Cette énumération fournit des informations spécifiques à la plate-forme sur la taille des structures de données utilisées par l'architecture sous-jacente.

ConstanteValeurDescription
QSysInfo::WordSize(sizeof(void *)<<3)Taille en bits d'un pointeur pour la plate-forme sur laquelle l'application est compilée (32 ou 64).

Fonction membre Documentation

[static] QByteArray QSysInfo::bootUniqueId()

Renvoie un identifiant unique pour le démarrage de cette machine, s'il est possible d'en déterminer un. Si aucun identifiant unique n'a pu être déterminé, cette fonction renvoie un tableau d'octets vide. Cette valeur est censée changer après chaque démarrage et peut être considérée comme unique au niveau mondial.

Cette fonction n'est actuellement implémentée que pour les systèmes d'exploitation Linux et Apple.

Voir aussi machineUniqueId().

[static] QString QSysInfo::buildAbi()

Renvoie la chaîne complète de l'architecture pour laquelle Qt a été compilé. Cette chaîne est utile pour identifier les différentes versions incompatibles. Par exemple, elle peut être utilisée comme identifiant pour demander un paquet de mise à jour à un serveur.

Les valeurs renvoyées par cette fonction sont maintenues stables comme suit : les composants obligatoires du résultat ne changeront pas dans les versions futures de Qt, mais des suffixes optionnels peuvent être ajoutés.

La valeur renvoyée est composée de trois parties ou plus, séparées par des tirets ("-"). Il s'agit des éléments suivants :

ComposantValeur
Architecture de l'unité centraleIdentique à QSysInfo::buildCpuArchitecture(), comme "arm", "i386", "mips" ou "x86_64"
Endiannée"little_endian" ou "big_endian"
Taille du motIl s'agit d'une application 32 ou 64 bits. Les valeurs possibles sont "llp64" (Windows 64 bits), "lp64" (Unix 64 bits), "ilp32" (32 bits).
ABI (facultatif)Zéro ou plusieurs composants identifiant les différents ABI possibles dans cette architecture. Actuellement, Qt a des composants ABI optionnels pour les processeurs ARM et MIPS : un composant est l'ABI principal (tel que "eabi", "o32", "n32", "o64") ; un autre indique si la convention d'appel utilise des registres matériels en virgule flottante ("hardfloat" est présent).

De plus, si Qt XML a été configuré avec -qreal float, l'option ABI "qreal_float" sera présente. Si Qt a été configuré avec un autre type comme qreal, ce type est présent après "qreal_", avec tous les caractères autres que les lettres et les chiffres échappés par un trait de soulignement, suivi de deux chiffres hexadécimaux. Par exemple, -qreal long double devient "qreal_long_20double".

Voir aussi QSysInfo::buildCpuArchitecture().

[static] QString QSysInfo::buildCpuArchitecture()

Renvoie l'architecture du processeur pour lequel Qt a été compilé, au format texte. Notez que cela peut ne pas correspondre à l'unité centrale réelle sur laquelle l'application tourne s'il y a une couche d'émulation ou si l'unité centrale supporte plusieurs architectures (comme les processeurs x86-64 supportant des applications i386). Pour détecter cela, utilisez currentCpuArchitecture().

Les valeurs renvoyées par cette fonction sont stables et ne changeront pas avec le temps. Les applications peuvent donc se fier à la valeur renvoyée comme identifiant, sauf que de nouveaux types de CPU peuvent être ajoutés avec le temps.

Les valeurs typiques renvoyées sont les suivantes (note : la liste n'est pas exhaustive) :

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

Voir aussi QSysInfo::buildAbi() et QSysInfo::currentCpuArchitecture().

[static] QString QSysInfo::currentCpuArchitecture()

Renvoie l'architecture de l'unité centrale sur laquelle tourne l'application, au format texte. Notez que cette fonction dépend des informations fournies par le système d'exploitation et peut ne pas détecter l'architecture réelle du processeur si le système d'exploitation cache cette information ou n'est pas en mesure de la fournir. Par exemple, un système d'exploitation 32 bits fonctionnant sur une unité centrale 64 bits est généralement incapable de déterminer si l'unité centrale est réellement capable d'exécuter des programmes 64 bits.

Les valeurs renvoyées par cette fonction sont généralement stables : une tentative sera faite pour s'assurer qu'elles restent constantes dans le temps et qu'elles correspondent aux valeurs renvoyées par buildCpuArchitecture(). Toutefois, en raison de la nature des fonctions du système d'exploitation utilisées, il peut y avoir des écarts.

Les valeurs typiques renvoyées sont les suivantes (note : la liste n'est pas exhaustive) :

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

Voir aussi QSysInfo::buildAbi() et QSysInfo::buildCpuArchitecture().

[static] QString QSysInfo::kernelType()

Renvoie le type de noyau du système d'exploitation pour lequel Qt a été compilé. C'est également le noyau sur lequel tourne l'application, à moins que le système d'exploitation hôte n'utilise une forme de compatibilité ou de couche de virtualisation.

Les valeurs renvoyées par cette fonction sont stables et ne changent pas au fil du temps. Les applications peuvent donc se fier à la valeur renvoyée comme identifiant, sauf que de nouveaux types de noyau de système d'exploitation peuvent être ajoutés au fil du temps.

Sous Windows, cette fonction renvoie le type de noyau Windows, comme "winnt". Sur les systèmes Unix, elle renvoie la même valeur que la sortie de uname -s (en minuscules).

Remarque : cette fonction peut renvoyer des valeurs surprenantes : elle renvoie "linux" pour tous les systèmes d'exploitation fonctionnant sous Linux (y compris Android), "qnx" pour tous les systèmes d'exploitation fonctionnant sous QNX, "freebsd" pour Debian/kFreeBSD, et "darwin" pour macOS et iOS. Pour plus d'informations sur le type de produit sur lequel l'application est exécutée, voir productType().

Voir également QFileSelector, kernelVersion(), productType(), productVersion() et prettyProductName().

[static] QString QSysInfo::kernelVersion()

Renvoie la version du noyau du système d'exploitation. Sous Windows, elle renvoie la version du noyau NT. Sur les systèmes Unix, y compris Android et macOS, elle renvoie la même chose que la commande uname -r. Sur VxWorks, elle renvoie la partie numérique de la chaîne rapportée par kernelVersion().

Si la version n'a pas pu être déterminée, cette fonction peut renvoyer une chaîne vide.

Voir également kernelType(), productType(), productVersion() et prettyProductName().

[static] QString QSysInfo::machineHostName()

Renvoie le nom d'hôte de cette machine, s'il est configuré. Notez que les noms d'hôtes ne sont pas garantis comme étant globalement uniques, surtout s'ils ont été configurés automatiquement.

Cette fonction ne garantit pas que le nom d'hôte renvoyé est un nom de domaine entièrement qualifié (FQDN). Pour cela, utilisez QHostInfo pour résoudre le nom retourné en un FQDN.

Cette fonction renvoie le même résultat que QHostInfo::localHostName().

Voir également QHostInfo::localDomainName et machineUniqueId().

[static] QByteArray QSysInfo::machineUniqueId()

Renvoie un identifiant unique pour cette machine, s'il est possible d'en déterminer un. Si aucun identifiant unique n'a pu être déterminé, cette fonction renvoie un tableau d'octets vide. Contrairement à machineHostName(), la valeur renvoyée par cette fonction est probablement unique au niveau mondial.

Un identifiant unique est utile dans les opérations de réseau pour identifier cette machine pendant une période prolongée, lorsque l'adresse IP peut changer ou si cette machine peut avoir plus d'une adresse IP. Par exemple, l'identifiant peut être utilisé pour communiquer avec un serveur ou pour stocker des données spécifiques à un périphérique dans un espace de stockage réseau partagé.

Notez que sur certains systèmes, cette valeur persistera après les redémarrages et sur d'autres, non. Les applications ne doivent pas dépendre aveuglément de ce fait sans vérifier les capacités du système d'exploitation. En particulier, sur les systèmes Linux, cet identifiant est généralement permanent et correspond à l'identifiant de la machine D-Bus, sauf pour les nœuds ne disposant pas de leur propre stockage (nœuds répliqués).

Voir également machineHostName() et bootUniqueId().

[static] QString QSysInfo::prettyProductName()

Renvoie une forme plus jolie de productType() et productVersion(), contenant d'autres jetons comme le type de système d'exploitation, les noms de code et d'autres informations. Le résultat de cette fonction peut être affiché à l'utilisateur, mais ne doit pas être stocké à long terme, car la chaîne peut changer avec les mises à jour de Qt.

Si productType() est "inconnu", cette fonction utilisera à la place les fonctions kernelType() et kernelVersion().

Voir aussi kernelType(), kernelVersion(), productType() et productVersion().

[static] QString QSysInfo::productType()

Renvoie le nom du produit du système d'exploitation dans lequel cette application est exécutée. Si l'application s'exécute sur une couche d'émulation ou de virtualisation (telle que WINE sur un système Unix), cette fonction inspectera la couche d'émulation/de virtualisation.

Les valeurs renvoyées par cette fonction sont stables et ne changeront pas au fil du temps. Les applications peuvent donc se fier à la valeur renvoyée comme identifiant, sauf que de nouveaux types de systèmes d'exploitation peuvent être ajoutés au fil du temps.

Note concernant Linux et Android: cette fonction renvoie "android" pour les systèmes Linux utilisant l'espace utilisateur Android, notamment lors de l'utilisation de la bibliothèque Bionic. Pour tous les autres systèmes Linux, quelle que soit la bibliothèque C utilisée, elle tente de déterminer le nom de la distribution et le renvoie. Si la détermination du nom de la distribution échoue, elle renvoie "unknown".

Note pour macOS: cette fonction renvoie "macos" pour tous les systèmes macOS, quelle que soit la convention de nommage d'Apple. Auparavant, dans Qt 5, elle renvoyait "osx", toujours sans tenir compte des conventions de nommage d'Apple.

Darwin, iOS, tvOS, et watchOS note: cette fonction retourne "ios" pour les systèmes iOS, "tvos" pour les systèmes tvOS, "watchos" pour les systèmes watchOS, et "darwin" dans le cas où le système n'a pas pu être déterminé.

Note sur FreeBSD: cette fonction renvoie "debian" pour Debian/kFreeBSD et "unknown" dans le cas contraire.

Remarque concernant Windows: cette fonction renvoie "windows"

Remarque concernant VxWorks: cette fonction renvoie "vxworks"

Pour les autres systèmes de type Unix, cette fonction renvoie généralement "unknown".

Voir aussi QFileSelector, kernelType(), kernelVersion(), productVersion() et prettyProductName().

[static] QString QSysInfo::productVersion()

Renvoie la version du produit du système d'exploitation sous forme de chaîne de caractères. Si la version n'a pas pu être déterminée, cette fonction renvoie "unknown".

Elle renvoie les versions complètes des produits Android, iOS, macOS, VxWorks et Windows sur ces systèmes.

Les valeurs typiques renvoyées sont (note : liste non exhaustive) :

  • "12" (Android 12)
  • "36" (Fedora 36)
  • "15.5" (iOS 15.5)
  • "12.4" (macOS Monterey)
  • "22.04" (Ubuntu 22.04)
  • "8.6" (watchOS 8.6)
  • "11" (Windows 11)
  • "Server 2022" (Windows Server 2022)
  • "24.03" (VxWorks 7 - 24.03)

Sur les systèmes Linux, il essaiera de déterminer la version de la distribution et la renverra. C'est également le cas sous Debian/kFreeBSD, et cette fonction renverra donc la version Debian dans ce cas.

Dans tous les autres systèmes de type Unix, cette fonction renvoie toujours "unknown".

Remarque : il n'est pas garanti que la chaîne de caractères de la version renvoyée par cette fonction puisse être ordonnée. Sous Linux, la version de la distribution peut sauter de manière inattendue, veuillez vous référer à la documentation de la distribution pour les pratiques de versionnement.

Voir aussi kernelType(), kernelVersion(), productType(), et prettyProductName().

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