<QtEnvironmentVariables>
환경 변수를 다루기 위한 보조 함수. 더 보기...
| Header: | #include <QtEnvironmentVariables> |
함수
| QString | qEnvironmentVariable(const char *varName) |
| QString | qEnvironmentVariable(const char *varName, const QString &defaultValue) |
| int | qEnvironmentVariableIntValue(const char *varName, bool *ok = nullptr) |
(since 6.10) std::optional<qint64> | qEnvironmentVariableIntegerValue(const char *varName) |
| bool | qEnvironmentVariableIsEmpty(const char *varName) |
| bool | qEnvironmentVariableIsSet(const char *varName) |
| QByteArray | qgetenv(const char *varName) |
| bool | qputenv(const char *varName, QByteArrayView value) |
| bool | qunsetenv(const char *varName) |
상세 설명
이 헤더에 포함된 함수들은 환경 변수를 조작하는 데 사용됩니다.
스레드 안전성
Qt 환경 조작 함수는 스레드 안전하지만, 이를 위해서는 getenv 및 putenv 와 같은 C 라이브러리의 동등한 함수를 직접 호출해서는 안 됩니다.
이는 애플리케이션에 의해 로드되는 타사 라이브러리에도 적용됩니다. 이러한 라이브러리가 보조 스레드에서 환경을 조작하기 위해 안전하지 않은 함수를 사용하는 경우, 라이브러리를 로드하거나 보조 스레드를 생성하기 전에 메인 스레드에서 모든 환경 설정을 완료하는 것이 좋습니다.
함수 문서
QString qEnvironmentVariable(const char *varName, const QString &defaultValue)
QString qEnvironmentVariable(const char *varName)
이 함수들은 환경 변수 ` varName`의 값을 ` QString` 형식으로 반환합니다. 환경에서 ` varName ` 변수가 발견되지 않고 ` defaultValue `가 전달된 경우, ` defaultValue `가 반환됩니다. 그렇지 않은 경우 `QString()`이 반환됩니다.
Qt 환경 조작 함수는 스레드 안전하지만, 이를 위해서는 getenv 및 putenv와 같은 C 라이브러리 동등 함수를 직접 호출해서는 안 됩니다.
다음 표는 ` qgetenv()`와 ` qEnvironmentVariable()` 중 어느 것을 선택해야 하는지 설명합니다:
| 조건 | 권장 사항 |
|---|---|
| 변수에 파일 경로 또는 사용자 입력 텍스트가 포함된 경우 | qEnvironmentVariable() |
| Windows 전용 코드 | qEnvironmentVariable() |
| 유닉스 전용 코드, 대상 변수가 ` QString `가 아니거나 비-Qt API와 연동하는 데 사용됨 | qgetenv() |
| 목적지 변수가 다음과 같은 경우 QString | qEnvironmentVariable() |
| 목적 변수가 QByteArray 이거나 std::string인 경우 | qgetenv() |
참고: 유닉스시스템에서 , 원본 문자열에 로케일 코덱으로 디코딩할 수 없는 임의의 바이너리 데이터가 포함되어 있는 경우 이 함수를 사용하면 데이터 손실이 발생할 수 있습니다. 이 경우 대신 qgetenv()을 사용하십시오. 윈도우에서는 이 함수가 데이터 손실 없이 작동합니다.
참고: 변수명 varName 에는 US-ASCII 문자만 포함되어야 합니다.
참조: qputenv(), qgetenv(), qEnvironmentVariableIsSet(), qEnvironmentVariableIsEmpty(), qEnvironmentVariableIntegerValue().
[noexcept] int qEnvironmentVariableIntValue(const char *varName, bool *ok = nullptr)
환경 변수 varName 의 수치 값을 반환합니다. ok 가 null이 아닌 경우, 변환 성공 여부에 따라 *ok 를 true 또는 false 으로 설정합니다.
다음과 동일하지만
int to_int = qgetenv(varName).toInt(ok, 0);와 동일하지만, 훨씬 더 빠르며 예외를 발생시킬 수 없다는 점이 다릅니다.
qgetenv(), qEnvironmentVariable(), qEnvironmentVariableIsSet()도 참조하십시오 .
[noexcept, since 6.10] std::optional<qint64> qEnvironmentVariableIntegerValue(const char *varName)
varName 환경 변수의 수치 값을 반환합니다. 변수가 설정되어 있지 않거나 정수로 파싱할 수 없는 경우, std::nullopt 를 반환합니다.
다음과 유사하지만
int to_int = qgetenv(varName).toInt(ok, 0);와 유사하지만, 훨씬 더 빠르며 예외를 발생시킬 수 없다는 점이 다릅니다.
0의 값이 빈 변수나 설정되지 않은 변수와 의미상 동일하다면, 애플리케이션은
auto value = qEnvironmentVariableIntegerValue(varName).value_or(0);이 경우, 값을 구문 분석하지 못해도 0이 반환된다는 점에 유의하십시오.
그러나 0 값을 사용하여 일부 기능을 비활성화할 수 있는 경우, 애플리케이션은 반환된 std::optional 를 0과 비교할 수 있으며, 이는 변수가 설정되어 있고 0으로 구문 분석된 숫자를 포함하는 경우에만 참이 됩니다.
bool equals_zero = qEnvironmentVariableIntegerValue(varName) == 0;이 함수는 Qt 6.10에서 도입되었습니다.
qgetenv(), qEnvironmentVariable(), qEnvironmentVariableIsSet()도 참조하십시오 .
[noexcept] bool qEnvironmentVariableIsEmpty(const char *varName)
환경 변수 ` varName `가 비어 있는지 여부를 반환합니다.
다음과 동일합니다.
bool is_empty = qgetenv(varName).isEmpty();와 동일하지만, 훨씬 더 빠를 수 있으며 예외를 발생시킬 수 없다는 점이 다릅니다.
qgetenv(), qEnvironmentVariable() 및 qEnvironmentVariableIsSet()도 참조하십시오 .
[noexcept] bool qEnvironmentVariableIsSet(const char *varName)
환경 변수 ` varName `가 설정되어 있는지 여부를 반환합니다.
다음과 동일하지만
bool is_not_null = !qgetenv(varName).isNull();와 동일하지만, 훨씬 더 빠를 수 있으며 예외를 발생시킬 수 없다는 점이 다릅니다.
qgetenv(), qEnvironmentVariable(), qEnvironmentVariableIsEmpty() 및 qEnvironmentVariableIntegerValue()도 참조하십시오 .
QByteArray qgetenv(const char *varName)
varName 라는 이름의 환경 변수 값을 QByteArray 형식으로 반환합니다. 환경에서 해당 이름의 변수가 발견되지 않으면, 이 함수는 기본 생성된 QByteArray 를 반환합니다.
Qt 환경 조작 함수는 스레드 안전하지만, 이를 위해서는 getenv 및 putenv와 같은 C 라이브러리의 동등한 함수를 직접 호출해서는 안 됩니다.
데이터를 QString 로 변환하려면 QString::fromLocal8Bit()를 사용하십시오.
참고: 데스크톱Windows에서 , 원본 문자열에 ANSI 인코딩으로 표현할 수 없는 유니코드 문자가 포함된 경우 qgetenv()를 사용하면 데이터 손실이 발생할 수 있습니다. 대신 qEnvironmentVariable()을 사용하십시오. Unix 시스템에서는 이 함수가 데이터 손실 없이 작동합니다.
참고: 이 함수는 스레드 안전합니다.
참조: qputenv(), qEnvironmentVariable(), qEnvironmentVariableIsSet(), qEnvironmentVariableIsEmpty(), qEnvironmentVariableIntegerValue().
bool qputenv(const char *varName, QByteArrayView value)
이 함수는 varName 라는 환경 변수의 값( value )을 설정합니다. 해당 변수가 존재하지 않으면 새로 생성합니다. 변수를 설정할 수 없는 경우 0을 반환합니다.
빈 값을 전달하여 qputenv를 호출하면 Windows에서는 환경 변수가 삭제되고, Unix에서는 환경 변수가 설정되지만 값은 비어 있게 됩니다. 완전히 이식 가능한 동작을 위해서는 qunsetenv()를 사용하는 것이 좋습니다.
참고: qputenv ()는 VC2005(및 이후 버전)에서 표준 C 라이브러리의 putenv()가 더 이상 사용되지 않게 됨에 따라 도입되었습니다. qputenv()는 VC에서는 대체 함수를 사용하고, 그 외 모든 플랫폼에서는 표준 C 라이브러리의 구현을 호출합니다.
참고: Qt 6.5 이전버전에서는 value 의 인수가 QByteArrayView 가 아닌 QByteArray 였습니다.
qgetenv() 및 qEnvironmentVariable()도 참조하십시오 .
bool qunsetenv(const char *varName)
이 함수는 환경에서 varName 변수를 삭제합니다.
성공 시 true 을 반환합니다.
qputenv(), qgetenv(), qEnvironmentVariable()도 참조하십시오 .
© 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.