QSysInfo Class
QSysInfo クラスは、システムに関する情報を提供します。詳細...
| ヘッダー: | #include <QSysInfo> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
パブリック型
静的パブリックメンバー
| 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::BigEndian | 0 | ビッグエンディアンのバイト順(ネットワークバイト順とも呼ばれる) |
QSysInfo::LittleEndian | 1 | リトルエンディアンのバイト順 |
QSysInfo::ByteOrder | BigEndian or LittleEndian | プラットフォームのバイト順に応じて、BigEndian または 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」など)です。 もう1つは、呼び出し規約がハードウェア浮動小数点レジスタを使用しているかどうか(「hardfloat」が存在する)です。 さらに、Qtが |
QSysInfo::buildCpuArchitecture()も参照してください 。
[static] QString QSysInfo::buildCpuArchitecture()
QtがコンパイルされたCPUのアーキテクチャをテキスト形式で返します。エミュレーション層が存在する場合や、CPUが複数のアーキテクチャをサポートしている場合(i386アプリケーションをサポートするx86-64プロセッサなど)、これがアプリケーションが実際に実行されている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ビットプログラムを実行できるかどうかを判断することはできません。
この関数が返す値は概ね安定しています。つまり、時間が経っても値が一定に保たれ、buildCpuArchitecture() が返す値と一致するよう努められます。ただし、使用されるオペレーティングシステム関数の性質上、不一致が生じる可能性があります。
代表的な戻り値は以下の通りです(注:このリストは網羅的なものではありません):
- "arm"
- "arm64"
- "i386"
- "ia64"
- "mips"
- "mips64"
- "power"
- "power64"
- "sparc"
- "sparcv9"
- "x86_64"
QSysInfo::buildAbi() およびQSysInfo::buildCpuArchitecture()も参照してください 。
[static] QString QSysInfo::kernelType()
Qt がコンパイルされたオペレーティングシステムのカーネルの型を返します。ホスト OS が互換性レイヤーや仮想化レイヤーを実行していない限り、これはアプリケーションが実行されているカーネルでもあります。
この関数が返す値は安定しており、時間の経過とともに変化することはないため、アプリケーションは返された値を識別子として信頼することができます。ただし、将来的に新しいOSカーネルタイプが追加される可能性はあります。
Windows では、この関数は「winnt」のような Windows カーネルのタイプを返します。Unix システムでは、uname -s の出力と同じ値を(小文字で)返します。
注: この関数は予想外の結果 を返す場合があります。Linux を実行しているすべてのオペレーティングシステム(Android を含む)に対しては「linux」、QNX を実行しているすべてのオペレーティングシステムに対しては「qnx」、Debian/kFreeBSD に対しては「freebsd」、macOS および iOS に対しては「darwin」を返します。 アプリケーションが実行されている製品のタイプに関する詳細については、productType() を参照してください。
QFileSelector 、kernelVersion()、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)であることを保証しません。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 XML のアップデートに伴い文字列が変更される可能性があるため、長期保存には適していません。
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に関する注記:この関数は、iOSシステムでは「ios」、tvOSシステムでは「tvos」、watchOSシステムでは「watchos」を返し、システムを特定できない場合は「darwin」を返します。
FreeBSDに関する注記:この関数は、Debian/kFreeBSDの場合は「debian」を返し、それ以外の場合は「unknown」を返します。
Windowsに関する注意:この関数は「windows」を返します。
VxWorksに関する注記:この関数は「vxworks」を返します。
その他のUnix系システムの場合、この関数は通常「unknown」を返します。
QFileSelector 、kernelType()、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」(Windows 11)
- 「Server 2022」(Windows Server 2022)
- "24.03" (VxWorks 7 - 24.03)
Linux システムでは、ディストリビューションのバージョンを判別しようとし、それを返します。これは Debian/kFreeBSD でも同様に行われるため、その場合はこの関数は Debian のバージョンを返します。
その他のすべてのUnix系システムでは、この関数は常に「unknown」を返します。
注: この関数から返されるバージョン文字列の 順序は保証されません。Linux では、ディストリビューションのバージョンが予期せず変更される場合があります。バージョン管理の慣行については、各ディストリビューションのドキュメントを参照してください。
関連項目: kernelType(),kernelVersion(),productType(), および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.