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()`를 사용하여 얻을 수 있습니다.
유닉스 시스템에서는 변수 이름의 대소문자를 구분합니다. 유닉스 환경에서는 변수 이름과 내용 모두에 임의의 바이너리 데이터(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 를 반환합니다.
[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 객체가 비어 있는 경우, 즉 key=value 쌍이 설정되어 있지 않은 경우 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 객체를 설정된 각 환경 변수마다 하나씩의 문자열로 구성된 목록으로 변환합니다. 환경 변수의 이름과 값은 등호('=')로 구분됩니다.
이 함수가 반환하는 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 를 반환합니다.
두 QProcessEnvironment 객체는 동일한 키-값 쌍 집합을 가질 때 동일하다고 간주됩니다. 환경이 대소문자를 구분하는 플랫폼에서는 키 비교 시 대소문자를 구분합니다.
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.