_putenv_s
, , _wputenv_s
_tputenv_s
환경 변수를 생성, 수정 또는 제거합니다. 이러한 함수는 CRT의 _putenv
_wputenv
보안 기능에 설명된 대로 보안이 향상된 버전입니다.
Important
이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.
자세한 내용은 _tputenv_s
제네릭 텍스트 함수 매핑을 참조 하세요.
구문
errno_t _putenv_s(
const char *varname,
const char *value_string
);
errno_t _wputenv_s(
const wchar_t *varname,
const wchar_t *value_string
);
매개 변수
varname
환경 변수 이름입니다.
value_string
환경 변수를 설정할 값입니다.
반환 값
성공하면 0을 반환하고, 그렇지 않으면 오류 코드를 반환합니다.
오류 조건
varname |
value_string |
반환 값 |
---|---|---|
NULL |
any | EINVAL |
any | NULL |
EINVAL |
오류 조건 중 하나가 발생하면 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 EINVAL
를 반환하고 errno
를 EINVAL
로 설정합니다.
설명
_putenv_s
함수는 새 환경 변수를 추가하거나 기존 환경 변수의 값을 수정합니다. 환경 변수는 프로세스가 실행되는 환경을 정의합니다(예: 프로그램에 연결할 라이브러리의 기본 검색 경로). _wputenv_s
은 _putenv_s
의 와이드 문자 버전이며, envstring
에 대한 _wputenv_s
인수는 와이드 문자열입니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 함수 매핑
열의 tchar.h
함수는 컴파일 시간에 정의된 문자 집합에 따라 다른 열의 함수에 매핑됩니다.
tchar.h 기능 |
_UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tputenv_s |
_putenv_s |
_putenv_s |
_wputenv_s |
varname
은 추가 또는 수정할 환경 변수의 이름이고 value_string
는 변수의 값입니다. varname
이 이미 환경의 일부이면 해당 값이 value_string
로 대체되고, 그렇지 않으면 새로운 varname
변수 및 해당 value_string
가 환경에 추가됩니다. 에 대해 빈 문자열(즉, ""
) value_string
을 지정하여 환경에서 변수를 제거할 수 있습니다.
_putenv_s
현재 프로세스에 로컬인 환경에만 영향을 줍니다 _wputenv_s
. 명령 수준 환경을 수정하는 데 사용할 수 없습니다. 이러한 함수는 운영 체제가 프로세스에 대해 만드는 환경 "세그먼트"가 아니라 런타임 라이브러리에 액세스할 수 있는 데이터 구조에서만 작동합니다. 현재 프로세스가 종료되면 환경이 호출 프로세스의 수준(대부분의 경우 운영 체제 수준)으로 되돌아갑니다. 그러나 수정된 환경을 _spawn
, _exec
또는 system
에 의해 생성되는 모든 새로운 프로세스에 전달할 수 있으며, 이러한 새로운 프로세스는 _putenv_s
및 _wputenv_s
에 의해 추가되는 모든 새로운 항목을 가져옵니다.
환경 항목을 직접 변경하지 마세요. 대신 사용 _putenv_s
하거나 _wputenv_s
변경합니다. 특히 _environ[]
전역 배열의 요소를 직접 해제하면 잘못된 메모리가 처리될 수 있습니다.
getenv
및 _putenv_s
는 전역 변수 _environ
을 사용하여 환경 테이블에 액세스하고, _wgetenv
및 _wputenv_s
는 _wenviron
을 사용합니다. _putenv_s
및 _wputenv_s
는 _environ
및 _wenviron
의 값을 변경하여 envp
에 대한 main
인수와 _wenvp
에 대한 wmain
인수를 무효화할 수 있습니다. 따라서 환경 정보를 사용 _environ
하거나 _wenviron
액세스하는 것이 더 안전합니다. 전역 변수와 글로벌 변수의 _putenv_s
관계에 대한 자세한 내용은 다음_wenviron
을 참조하세요_environ
._wputenv_s
참고 항목
함수의 _putenv_s
및 _getenv_s
패밀리는 스레드로부터 안전하지 않습니다. _getenv_s
는 _putenv_s
가 문자열을 수정하는 동안 문자열 포인터를 반환할 수 있으므로 임의의 오류를 발생시킵니다. 이러한 함수에 대한 호출은 동기화해야 합니다.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_putenv_s |
<stdlib.h> |
_wputenv_s |
<stdlib.h> 또는 <wchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
사용 _putenv_s
방법을 보여 주는 샘플은 다음_wgetenv_s
을 참조하세요getenv_s
.