QProcessEnvironment Class
QProcessEnvironment クラスは、プログラムに渡すことができる環境変数を保持します。詳細...
| ヘッダー: | #include <QProcessEnvironment> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QProcessEnvironment は、「入出力およびネットワーク」および「暗黙的に共有されるクラス」の一部です。
注:このクラスのすべての関数は再入可能です。
QProcessEnvironment の比較
| カテゴリ | 比較可能な型 |
|---|---|
| 等価性 | QProcessEnvironment |
パブリック型
(since 6.3) enum | Initialization { InheritFromParent } |
パブリック関数
| QProcessEnvironment() | |
(since 6.3) | QProcessEnvironment(QProcessEnvironment::Initialization) |
| QProcessEnvironment(const QProcessEnvironment &other) | |
| ~QProcessEnvironment() | |
| void | clear() |
| bool | contains(const QString &name) const |
(since 6.3) bool | inheritsFromParent() const |
| void | insert(const QString &name, const QString &value) |
| void | insert(const QProcessEnvironment &e) |
| bool | isEmpty() const |
| QStringList | keys() const |
| void | remove(const QString &name) |
| void | swap(QProcessEnvironment &other) |
| QStringList | toStringList() const |
| QString | value(const QString &name, const QString &defaultValue = QString()) const |
| QProcessEnvironment & | operator=(const QProcessEnvironment &other) |
静的パブリックメンバー
| QProcessEnvironment | systemEnvironment() |
関連する非メンバー
| bool | operator!=(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs) |
| bool | operator==(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs) |
詳細な説明
プロセスの環境は、環境変数と呼ばれる一連のキー=値のペアで構成されています。QProcessEnvironment クラスはこの概念をラップしており、これらの変数を簡単に操作できるようにします。これは、QProcess と組み合わせて使用し、子プロセスの環境を設定することを目的としています。現在のプロセスの環境を変更するために使用することはできません。
呼び出し元のプロセスの環境は、QProcessEnvironment::systemEnvironment() を使用して取得できます。
Unixシステムでは、変数名は大文字と小文字が区別されます。Unix環境では、変数名と内容の両方に任意のバイナリデータ(NUL文字を除く)を含めることができる点に注意してください。QProcessEnvironmentはこのような変数を保持しますが、現在のロケール設定でエンコードできない名前や値を持つ変数の操作はサポートしていません(QString::toLocal8Bit を参照)。
Windows では、変数名は大文字と小文字を区別しませんが、大文字小文字は保持されます。QProcessEnvironment もこれに従って動作します。
セキュリティ上の考慮事項
新しい環境変数でプロセス環境を拡張したり、PATH を調整したりすると、信頼できないバイナリの実行などを通じて、システムがセキュリティ上の脆弱性にさらされる可能性があります。したがって、ユーザーからのすべての入力を、プロセス環境に渡す前に検証することを推奨します。
関連項目: QProcess 、QProcess::systemEnvironment()、およびQProcess::setProcessEnvironment()。
メンバ型のドキュメント
[since 6.3] enum QProcessEnvironment::Initialization
この列挙型には、コンストラクタの曖昧さを解消するために使用されるトークンが含まれています。
| 定数 | 値 | 説明 |
|---|---|---|
QProcessEnvironment::InheritFromParent | 0 | QProcessEnvironment が作成され、これを `QProcess` に設定すると、そのインスタンスは親から変数を継承するようになります。 |
この列挙型は Qt 6.3 で導入されました。
メンバ関数のドキュメント
QProcessEnvironment::QProcessEnvironment()
新しい QProcessEnvironment オブジェクトを作成します。このコンストラクタは、空の環境を作成します。QProcess に対してこのコンストラクタを呼び出すと、現在の環境変数が削除されます(Windows の場合、PATH および SystemRoot を除く)。
[noexcept, since 6.3] QProcessEnvironment::QProcessEnvironment(QProcessEnvironment::Initialization)
QProcess に設定すると、親プロセスから環境変数を継承した状態で実行されるオブジェクトを作成します。
注: 作成されたオブジェクト自体は 環境変数を一切保持せず、単にQProcess に対し、新しいプロセスが起動される際に環境変数を継承するよう指示するだけです。作成されたオブジェクトに環境変数を追加すると、環境変数の継承が無効になり、追加された環境変数のみを含む環境になります。
親環境の修正版が必要な場合は、systemEnvironment() の戻り値から始め、それを修正してください(ただし、その環境が作成された後に親プロセスの環境に変更が加えられても、修正された環境には反映されないことに注意してください)。
この関数は Qt 6.3 で導入されました。
inheritsFromParent() およびsystemEnvironment()も参照してください 。
QProcessEnvironment::QProcessEnvironment(const QProcessEnvironment &other)
other のコピーである QProcessEnvironment オブジェクトを作成します。
[noexcept] QProcessEnvironment::~QProcessEnvironment()
このQProcessEnvironment オブジェクトに関連付けられているリソースを解放します。
void QProcessEnvironment::clear()
このQProcessEnvironment オブジェクトからすべてのキー=値のペアを削除し、空の状態にします。
環境が `QProcessEnvironment::InheritFromParent ` を使用して構築された場合、その環境は変更されません。
isEmpty() およびsystemEnvironment()も参照してください 。
bool QProcessEnvironment::contains(const QString &name) const
このQProcessEnvironment オブジェクト内に、名前がname である環境変数が存在する場合、true を返します。
insert() およびvalue()も参照してください 。
[since 6.3] bool QProcessEnvironment::inheritsFromParent() const
このQProcessEnvironment がQProcessEnvironment::InheritFromParent を使用して構築された場合、true を返します。
この関数は Qt 6.3 で導入されました。
isEmpty()も参照してください 。
void QProcessEnvironment::insert(const QString &name, const QString &value)
名前が `name `、内容が `value ` である環境変数を、この `QProcessEnvironment ` オブジェクトに挿入します。その変数がすでに存在する場合、新しい値に置き換えられます。
ほとんどのシステムでは、内容のない変数を挿入しても、アプリケーションにとっては変数が設定されていないのと同じ効果になります。ただし、互換性の問題を確実に回避するため、変数を削除するには、remove() 関数を使用してください。
contains()、remove()、およびvalue()も参照してください 。
void QProcessEnvironment::insert(const QProcessEnvironment &e)
e の内容を、このQProcessEnvironment オブジェクトに挿入します。このオブジェクトに含まれ、かつe にも存在する変数は上書きされます。
これはオーバーロードされた関数です。
bool QProcessEnvironment::isEmpty() const
この `QProcessEnvironment ` オブジェクトが空の場合、つまりキーと値のペアが設定されていない場合は、true を返します。
また、このメソッドは、QProcessEnvironment::InheritFromParent を使用して構築されたオブジェクトに対してもtrue を返します。
clear()、systemEnvironment()、insert()、およびinheritsFromParent()も参照してください 。
QStringList QProcessEnvironment::keys() const
この `QProcessEnvironment ` オブジェクトに含まれるすべての変数名を格納したリストを返します。
QProcessEnvironment::InheritFromParent を使用して構築されたオブジェクトの場合、返されるリストは空になります。
void QProcessEnvironment::remove(const QString &name)
name で指定された環境変数を、このQProcessEnvironment オブジェクトから削除します。その変数が以前から存在しなかった場合は、何も起こりません。
contains()、insert()、およびvalue()も参照してください 。
[noexcept] void QProcessEnvironment::swap(QProcessEnvironment &other)
このプロセス環境インスタンスをother と入れ替えます。この操作は非常に高速で、失敗することはありません。
[static] QProcessEnvironment QProcessEnvironment::systemEnvironment()
systemEnvironment関数は、呼び出し元プロセスの環境を返します。
結果は `QProcessEnvironment` として返されます。この関数はシステム環境をキャッシュしません。したがって、setenv やputenv などの低レベルの C ライブラリ関数が呼び出された場合、更新された環境を取得することが可能です。
ただし、この関数を繰り返し呼び出すと、QProcessEnvironment オブジェクトが再作成されることに注意してください。これは、非自明な操作です。
QProcess::systemEnvironment()も参照してください 。
QStringList QProcessEnvironment::toStringList() const
このQProcessEnvironment オブジェクトを、設定されている環境変数ごとに1つずつ、文字列のリストに変換します。環境変数の名前とその値は、等号('=')で区切られます。
この関数が返すQStringList の内容は、そのまま表示に適しています。Unix環境下ではエンコーディングの問題が発生する可能性があり、パフォーマンスも低下するため、QProcess::setEnvironment関数との併用は推奨されません。
systemEnvironment()、QProcess::systemEnvironment()、およびQProcess::setProcessEnvironment()も参照してください 。
QString QProcessEnvironment::value(const QString &name, const QString &defaultValue = QString()) const
このQProcessEnvironment オブジェクト内で、name で指定された変数を検索し、その値を返します。このオブジェクト内にその変数が見つからない場合は、代わりにdefaultValue が返されます。
contains()、insert()、およびremove()も参照してください 。
QProcessEnvironment &QProcessEnvironment::operator=(const QProcessEnvironment &other)
other QProcessEnvironment オブジェクトの内容を、このオブジェクトにコピーします。
関連する非メンバー
[noexcept] bool operator!=(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)
プロセス環境オブジェクト `lhs ` と `rhs ` が異なる場合、true を返します。
operator==()も参照してください 。
[noexcept] bool operator==(const QProcessEnvironment &lhs, const QProcessEnvironment &rhs)
プロセス環境オブジェクト `lhs ` と `rhs ` が等しい場合、true を返します。
2つの `QProcessEnvironment ` オブジェクトは、同じ `key=value` ペアのセットを持つ場合に等しいとみなされます。環境が大文字と小文字を区別するプラットフォームでは、キーの比較は大文字と小文字を区別して行われます。
operator!=() およびcontains()も参照してください 。
© 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.