QSysInfo Class

QSysInfoクラスは、システムに関する情報を提供する。詳細...

Header: #include <QSysInfo>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

パブリック・タイプ

enum Endian { BigEndian, LittleEndian, ByteOrder }
enum 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 プラットフォームがビッグエンディアンかリトルエンディアンかを指定します。

一部の定数は、特定のプラットフォームでのみ定義されています。プリプロセッサ・シンボルQ_OS_WIN およびQ_OS_MACOS を使用すると、アプリケーションが Windows または macOS でコンパイルされていることをテストできます。

QLibraryInfoも参照してください

メンバ型ドキュメント

enum QSysInfo::Endian

定数説明
QSysInfo::BigEndian0ビッグエンディアンバイトオーダー (ネットワークバイトオーダーとも呼ばれる)
QSysInfo::LittleEndian1リトルエンディアンバイトオーダー
QSysInfo::ByteOrderBigEndian or LittleEndianプラットフォームのバイトオーダーに応じて、ビッグエンディアンまたはリトルエンディアンに等しい。

enum QSysInfo::Sizes

この列挙型は、基礎となるアーキテクチャで使用されるデータ構造のサイズに関するプラットフォーム固有の情報を提供します。

定数説明
QSysInfo::WordSize(sizeof(void *)<<3)アプリケーションがコンパイルされているプラットフォームのポインタのビットサイズ(32 または 64)。

メンバー関数 ドキュメント

[static] QByteArray QSysInfo::bootUniqueId()

このマシンのブート用の一意なIDを返します。一意なIDが見つからない場合、この関数は空のバイト配列を返します。この値はブート毎に変更されることが予想され、グローバルに一意であるとみなすことができる。

この関数は、現在のところLinuxとAppleオペレーティングシステムにのみ実装されている。

machineUniqueId()も参照してください

[static] QString QSysInfo::buildAbi()

Qt がコンパイルされたアーキテクチャの完全な文字列を返します。この文字列は、互換性のない異なるビルドを識別するのに便利です。例えば、サーバーにアップグレードパッケージを要求する際の識別子として使用できます。

この関数から返される値は、以下のように安定した状態に保たれます: 結果の必須コンポーネントは、Qt の将来のバージョンでも変更されませんが、オプションの接尾辞が追加される可能性があります。

返される値は、ダッシュ ("-") で区切られた 3 つ以上の部分で構成されます。それらは

コンポーネント
CPUアーキテクチャQSysInfo::buildCpuArchitecture ()と同じ。"arm"、"i386"、"mips"、"x86_64 "など。
エンディアン"little_endian" または "big_endian"
単語サイズ32ビットアプリケーションか64ビットアプリケーションか。可能な値は以下の通り:「llp64"(Windowsの64ビット)、"lp64"(Unixの64ビット)、"ilp32"(32ビット)。
(オプション)ABIこのアーキテクチャで可能な異なる ABI を識別する 0 個以上のコンポーネント。現在のところ、Qt には ARM と MIPS プロセッサ用のオプションの ABI コンポーネントがあります: 1 つのコンポーネントはメインの ABI("eabi"、"o32"、"n32"、"o64 "など)です。

さらに、Qt が-qreal float で設定されている場合、ABI オプションタグ "qreal_float" が存在します。Qtが別の型をqrealとして設定されていた場合、その型は "qreal_"の後に存在し、文字と数字以外のすべての文字はアンダースコアでエスケープされ、その後に2桁の16進数が続きます。例えば、-qreal long double は "qreal_long_20double" となります。

QSysInfo::buildCpuArchitecture()も参照のこと

[static] QString QSysInfo::buildCpuArchitecture()

Qt がコンパイルされた CPU のアーキテクチャをテキスト形式で返します。エミュレーション層がある場合や、CPUが複数のアーキテクチャをサポートしている場合(x86-64プロセッサがi386アプリケーションをサポートしているような場合)には、アプリケーションを実行している実際のCPUと一致しない可能性があることに注意してください。これを検出するには、currentCpuArchitecture ()を使用します。

この関数が返す値は安定しており、時間の経過とともに変化することはありません。そのため、アプリケーションは、新しいCPUタイプが時間の経過とともに追加される可能性があることを除けば、返される値を識別子として信頼することができます。

典型的な返される値は以下のとおりである(注:リストは完全なものではない):

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

QSysInfo::buildAbi() およびQSysInfo::currentCpuArchitecture()も参照のこと

[static] QString QSysInfo::currentCpuArchitecture()

アプリケーションが動作している CPU のアーキテクチャをテキスト形式で返す。この関数はOSが報告する内容に依存するため、OSがその情報を隠したり提供でき なかったりすると、実際のCPUアーキテクチャを検出できない可能性があることに 注意。例えば、64ビットCPU上で動作する32ビットOSは、通常、CPUが実際に64ビットプログラムを実行可能かどうかを判断することができません。

この関数が返す値は、時間の経過とともに一定に保たれ、QSysInfo::builldCpuArchitecture() が返す値と一致するように試みられる。しかし、使用されるオペレーティングシステム関数の性質上、矛盾が生じる可能性があります。

典型的な返される値は以下の通りである(注:リストは完全なものではない):

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

QSysInfo::buildAbi() およびQSysInfo::buildCpuArchitecture()も参照して ください。

[static] QString QSysInfo::kernelType()

Qt がコンパイルされたオペレーティングシステムカーネルのタイプを返します。ホストオペレーティングシステムが互換性や仮想化レイヤーを実行していない限り、これはアプリケーションが実行されているカーネルでもあります。

この関数が返す値は安定しており、時間の経過とともに変化することはありません。そのため、アプリケーションは、新しいOSカーネルタイプが時間の経過とともに追加される可能性があることを除いて、返される値を識別子として信頼することができます。

Windowsでは、この関数は "winnt "のようなWindowsカーネルのタイプを返す。Unixシステムでは、uname -s (小文字)の出力と同じものを返す。

注意: この関数は意外な値を返すことがある: Linux (Androidを含む)を実行しているすべてのオペレーティングシステムに対して "linux"、QNXを実行しているすべてのオペレーティングシステムに対して "qnx"、Debian/kFreeBSDに対して "freebsd"、macOSとiOSに対して "darwin "を返す。アプリケーションが動作している製品のタイプについては、productType()を参照。

QFileSelectorkernelVersion()、productType()、productVersion()、prettyProductName()も参照の こと。

[static] QString QSysInfo::kernelVersion()

オペレーティング・システム・カーネルのリリース・バージョンを返します。Windowsでは、NTカーネルのバージョンを返す。AndroidとmacOSを含むUnixシステムでは、uname -r コマンドが返すものと同じものを返す。VxWorksでは、kernelVersion()によって報告された文字列の数値部分を返します。

バージョンを特定できなかった場合、この関数は空の文字列を返すことがある。

kernelType()、productType()、productVersion()、prettyProductName()も参照のこと

[static] QString QSysInfo::machineHostName()

ホスト名が設定されている場合、このマシンのホスト名を返す。ホスト名がグローバルに一意であることは保証されないことに注意。

この関数は、返されるホスト名が完全修飾ドメイン名(FQDN)であることを保証しない。その場合は、QHostInfo を使用して、返された名前を FQDN に解決してください。

この関数は、QHostInfo::localHostName ()と同じものを返す。

QHostInfo::localDomainName およびmachineUniqueId()も参照

[static] QByteArray QSysInfo::machineUniqueId()

このマシンの一意なIDが決定できる場合は、それを返す。一意の ID が見つからない場合、この関数は空のバイト配列を返す。machineHostName() とは異なり、この関数が返す値はグローバルに一意である可能性が高い。

一意のIDは、IPアドレスが変更される可能性がある場合や、このマシンが複数のIPアドレスを持つ可能性がある場合に、このマシンを長期間識別するためのネットワーク操作に有用である。例えば、サーバーと通信するときや、共有ネットワーク・ストレージにデバイ ス固有のデータを保存するときに、IDを使用することができる。

システムによっては、リブートしてもこの値が持続するものと、そうでないものがあることに注意。アプリケーションは、OSの機能を検証することなく、この事実に盲目的に依存すべきではない。特にLinuxシステムでは、独自のストレージを持たないノード(レプリケート・ノード)を除き、このIDは通常永続的であり、D-BusマシンIDと一致する。

machineHostName() およびbootUniqueId()も参照のこと

[static] QString QSysInfo::prettyProductName()

productType() およびproductVersion() をより洗練された形で返し、オペレーティング・システム・タイプ、 コードネームなどの他のトークンを含む。この関数の結果は、ユーザーに表示するのに適していますが、Qt のアップデートによって文字列が変更される可能性があるため、長期保存には適していません。

productType() が "unknown" の場合、この関数はkernelType() とkernelVersion() 関数を使用します。

kernelType()、kernelVersion()、productType()、productVersion()も参照してください

[static] QString QSysInfo::productType()

このアプリケーションが動作しているオペレーティング・システムの製品名を返します。アプリケーションが何らかのエミュレーションや仮想化レイヤ(UnixシステムのWINEなど)上で動作している場合、この関数はエミュレーション/仮想化レイヤを検査します。

この関数が返す値は安定しており、時間の経過とともに変化することはありません。そのため、アプリケーションは、時間の経過とともに新しいOSタイプが追加される可能性があることを除いて、返される値を識別子として信頼することができます。

LinuxとAndroidに関する注意:この関数は、Androidユーザー空間を実行しているLinuxシステム(特にBionicライブラリを使用している場合)に対して "android "を返します。他のすべてのLinuxシステムでは、使用されているCライブラリに関係なく、ディストリビューション名の決定を試み、それを返します。ディストリビューション名の決定に失敗した場合は、"unknown "を返します。

macOS 注意: この関数は、Apple の命名規則に関係なく、すべての macOS システムに対して "macos" を返します。以前の Qt 5 では、Apple の命名規則に関係なく "osx" を返していました。

Darwin、iOS、tvOS、watchOS note: この関数は、iOS システムに対しては "ios"、tvOS システムに対しては "tvos"、watchOS システムに対しては "watchos"、システムが判別できなかった場合には "darwin" を返します。

FreeBSD note: この関数は Debian/kFreeBSD の場合は "debian" を、それ以外の場合は "unknown" を返します。

Windows 注意: この関数は "windows" を返します。

VxWorks 注意: この関数は "vxworks" を返します。

その他のUnix系システムでは、この関数は通常 "unknown "を返します。

QFileSelectorkernelType()、kernelVersion()、productVersion()、prettyProductName()も参照のこと

[static] QString QSysInfo::productVersion()

オペレーティング・システムの製品バージョンを文字列形式で返す。バージョンを特定できなかった場合、この関数は "unknown "を返す。

この関数は、Android、iOS、macOS、VxWorks、Windowsの製品バージョンを返します。

典型的な返される値は以下のとおりです(注:リストは網羅的ではありません):

  • 「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"(ウィンドウズ11)
  • "Server 2022" (ウィンドウズ・サーバー2022)
  • 「24.03" (VxWorks 7 - 24.03)

Linux システムでは、ディストリビューションのバージョンを判別し、それを返します。これはDebian/kFreeBSDでも行われるため、この関数はDebianのバージョンを返します。

その他のUnix系システムでは、この関数は常に "unknown "を返します。

注意: この関数から返されるバージョン文字列は、順序が保証されていません。Linuxでは、ディストリビューションのバージョンは予期せずジャンプする可能性があります。

kernelType(),kernelVersion(),productType(),prettyProductName()も参照して ください。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。