Sur cette page

QSysInfo Class

La classe QSysInfo fournit des informations sur le système. En savoir plus...

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 indique si la plate-forme est de type « big-endian » ou « little-endian ».

Certaines constantes ne sont définies que sur certaines plateformes. Vous pouvez utiliser les symboles de préprocesseur Q_OS_WIN et Q_OS_MACOS pour vérifier si l'application est compilée sous Windows ou macOS.

Voir également QLibraryInfo.

Documentation sur les types de membres

enum QSysInfo::Endian

ConstanteValeurDescription
QSysInfo::BigEndian0Ordre des octets « big-endian » (également appelé « ordre des octets réseau »)
QSysInfo::LittleEndian1Ordre des 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 concernant 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).

Documentation des fonctions membres

[static] QByteArray QSysInfo::bootUniqueId()

Renvoie un identifiant unique correspondant au 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 également machineUniqueId().

[static] QString QSysInfo::buildAbi()

Renvoie la chaîne complète décrivant l'architecture pour laquelle Qt a été compilé. Cette chaîne est utile pour identifier différentes versions incompatibles. Elle peut, par exemple, servir d'identifiant pour demander un paquet de mise à jour à un serveur.

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

La valeur renvoyée est composée d’au moins trois parties, séparées par des tirets (« - »). Il s’agit des éléments suivants :

ComposantValeur
Architecture du processeurIdentique à celle de la fonction ` QSysInfo::buildCpuArchitecture()`, par exemple « arm », « i386 », « mips » ou « x86_64 »
Endianness«little_endian » ou «big_endian »
Taille de motIndique s’il s’agit d’une application 32 ou 64 bits. Les valeurs possibles sont : « llp64 » (Windows 64 bits), « lp64 » (Unix 64 bits), « ilp32 » (32 bits)
(Facultatif) ABIZéro ou plusieurs composants identifiant les différentes ABI possibles dans cette architecture. Actuellement, Qt propose des composants ABI facultatifs pour les processeurs ARM et MIPS : un composant correspond à l’ABI principale (telle que « eabi », « o32 », « n32 », « o64 ») ; un autre indique si la convention d’appel utilise des registres matériels à virgule flottante (« hardfloat » est présent).

De plus, si Qt a été configuré avec -qreal float, la balise d’option ABI « qreal_float » sera présente. Si Qt a été configuré avec un type autre que qreal, ce type apparaît après « qreal_ », tous les caractères autres que les lettres et les chiffres étant échappés par un trait de soulignement, suivi de deux chiffres hexadécimaux. Par exemple, « -qreal long double » devient « qreal_long_20double ».

Voir également QSysInfo::buildCpuArchitecture().

[static] QString QSysInfo::buildCpuArchitecture()

Renvoie l'architecture du processeur pour laquelle Qt a été compilé, au format texte. Notez que cette valeur peut ne pas correspondre au processeur réel sur lequel l'application s'exécute s'il existe une couche d'émulation ou si le processeur prend en charge plusieurs architectures (comme les processeurs x86-64 prenant en charge les applications i386). Pour détecter cela, utilisez la fonction currentCpuArchitecture().

Les valeurs renvoyées par cette fonction sont stables et ne changent pas au fil du temps ; les applications peuvent donc s'appuyer sur la valeur renvoyée comme identifiant, sauf si de nouveaux types de processeurs viennent s'ajouter au fil du temps.

Voici quelques exemples de valeurs renvoyées (remarque : cette 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 du processeur sur lequel l'application s'exécute, sous forme de 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 masque ces informations ou n’est pas en mesure de les fournir. Par exemple, un système d’exploitation 32 bits s’exécutant sur un processeur 64 bits est généralement incapable de déterminer si le processeur est réellement capable d’exécuter des programmes 64 bits.

Les valeurs renvoyées par cette fonction sont pour la plupart stables : tout est mis en œuvre pour qu'elles restent constantes dans le temps et correspondent aux valeurs renvoyées par la fonction ` buildCpuArchitecture()`. Toutefois, en raison de la nature des fonctions du système d'exploitation utilisées, des écarts peuvent apparaître.

Les valeurs renvoyées typiques sont les suivantes (remarque : cette 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 du noyau du système d'exploitation pour lequel Qt a été compilé. Il s'agit également du noyau sur lequel l'application s'exécute, sauf si le système d'exploitation hôte utilise une couche de compatibilité ou de virtualisation.

Les valeurs renvoyées par cette fonction sont stables et ne changent pas au fil du temps ; les applications peuvent donc s'appuyer sur la valeur renvoyée comme identifiant, sauf si de nouveaux types de noyaux de système d'exploitation viennent s'ajouter au fil du temps.

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

Remarque : cette fonction peut renvoyer des valeurs inattendues : 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 s’exécute, consultez 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 valeur que celle renvoyée par la commande ` uname -r `. Sous VxWorks, elle renvoie la partie numérique de la chaîne de caractères renvoyée par la fonction `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 en a été configuré un. Notez qu'il n'est pas garanti que les noms d'hôte soient uniques au niveau mondial, en particulier s'ils ont été configurés automatiquement.

Cette fonction ne garantit pas que le nom d'hôte renvoyé soit un nom de domaine complet (FQDN). Pour cela, utilisez QHostInfo afin de résoudre le nom renvoyé en un FQDN.

Cette fonction renvoie le même résultat que la fonction 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 à la fonction ` machineHostName()`, la valeur renvoyée par cette fonction est probablement unique au niveau mondial.

Un identifiant unique est utile dans le cadre d’opérations réseau pour identifier cette machine sur une longue période, lorsque l’adresse IP est susceptible de changer ou si cette machine peut disposer de plusieurs adresses IP. Par exemple, cet identifiant peut être utilisé lors de la communication avec un serveur ou lors du stockage de données spécifiques à l’appareil dans un espace de stockage réseau partagé.

Notez que sur certains systèmes, cette valeur persiste d’un redémarrage à l’autre, tandis que sur d’autres, ce n’est pas le cas. Les applications ne doivent pas s’appuyer aveuglément sur 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 machine D-Bus, sauf pour les nœuds ne disposant pas de leur propre espace de stockage (nœuds répliqués).

Voir également machineHostName() et bootUniqueId().

[static] QString QSysInfo::prettyProductName()

Renvoie une version plus lisible des fonctions productType() et productVersion(), contenant d’autres éléments tels que le type de système d’exploitation, les noms de code et d’autres informations. Le résultat de cette fonction est adapté à l’affichage à l’utilisateur, mais ne convient pas au stockage à long terme, car la chaîne de caractères peut changer lors des mises à jour de Qt.

Si productType() renvoie « unknown », cette fonction utilise alors les fonctions kernelType() et kernelVersion().

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

[static] QString QSysInfo::productType()

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

Les valeurs renvoyées par cette fonction sont stables et ne changent pas au fil du temps ; les applications peuvent donc s'appuyer sur la valeur renvoyée comme identifiant, sauf si de nouveaux types de systèmes d'exploitation viennent s'ajouter au fil du temps.

Remarque concernant Linux et Android: cette fonction renvoie « android » pour les systèmes Linux exécutant 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 ».

Remarque concernant 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 », là encore indépendamment des conventions de nommage d’Apple.

Remarque concernant Darwin, iOS, tvOS et watchOS: cette fonction renvoie « ios » pour les systèmes iOS, « tvos » pour les systèmes tvOS, « watchos » pour les systèmes watchOS et « darwin » si le système n’a pas pu être déterminé.

Remarque concernant FreeBSD: cette fonction renvoie « debian » pour Debian/kFreeBSD et « unknown » dans les autres cas.

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 également QFileSelector, kernelType(), kernelVersion(), productVersion() et prettyProductName().

[static] QString QSysInfo::productVersion()

Renvoie la version 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.

Voici quelques exemples de valeurs renvoyées (remarque : cette liste n'est pas 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, cette fonction tentera de déterminer la version de la distribution et renverra celle-ci. Cela s’applique également à Debian/kFreeBSD ; dans ce cas, la fonction renverra donc la version de Debian.

Sur tous les autres systèmes de type Unix, cette fonction renvoie toujours « inconnu ».

Remarque : il n’est pas garanti quela chaîne de version renvoyée par cette fonction soit classable par ordre croissant. Sous Linux, la version de la distribution peut changer de manière inattendue ; veuillez vous reporter à la documentation de la distribution pour connaître les pratiques en matière de numérotation des versions.

Voir également 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.