_putenv_s, _wputenv_s
생성, 수정, 또는 환경 변수를 제거합니다. 버전 _putenv, _wputenv 가 있지만, 보안향상을 갖고 있습니다, CRT의 보안 기능 에 설명되어 있습니다.
중요
이 API는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /ZW에서 지원하지 않는 CRT 함수를 참조하십시오.
errno_t _putenv_s(
const char *name,
const char *value
);
errno_t _wputenv_s(
const wchar_t *name,
const wchar_t *value
);
매개 변수
name
환경 변수의 이름입니다.value
지정된 값으로 설정할 변수입니다.
반환 값
성공 하면 0을 반환합니다 또는 오류 코드입니다.
오류 조건
name |
value |
반환 값 |
---|---|---|
NULL |
any |
EINVAL |
any |
NULL |
EINVAL |
위의 오류 조건이 발생하는 경우, 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 EINVAL를 반환하고 errno를 EINVAL로 설정합니다.
설명
이 _putenv_s 함수는 새 환경 변수를 추가하거나 기존 환경 변수의 값을 수정 합니다. 환경 변수 프로세스 (예: 프로그램으로 연결 된 라이브러리에 대 한 기본 검색 경로) 실행되는 환경을 정의합니다. _wputenv_s는 _putenv_s의 와이드 문자 버전이며, _wputenv_s의 envstring 인수는 와이드 문자 문자열입니다.
제네릭 텍스트 라우팅 매핑
TCHAR.H 루틴 |
_UNICODE 및 _MBCS 정의되지 않음 |
_MBCS 정의됨 |
_UNICODE 정의됨 |
---|---|---|---|
_tputenv_s |
_putenv_s |
_putenv_s |
_wputenv_s |
name 는 추가 하거나 수정 하는 환경 변수 이름 및 value 변수의 값입니다. 만약 name 가 환경 부분으로 준비된 경우, 이 값은 value 으로 대체합니다; 그렇지 않으면, 새로운 name 변수 그리고 value 값은 환경을 추가합니다. 빈 문자열을 지정하여 환경에서 변수를 제거할 수 있습니다 (즉, "") value 에 대한 것입니다.
_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 와 _wputenv_s 의 관계에 대한 더 자세한 내용은 _environ, _wenviron을 참조하십시오.
참고
_putenv_s 및 _getenv_s 함수 패밀리는 스레드로부터 안전 하지 않습니다._putenv_s 는 임의 오류가 발생하여 문자열을 수정하는 동안, _getenv_s 는 문자열 포인터를 반환합니다.이러한 함수에 대한 호출은 동기화해야 합니다.
요구 사항
루틴 |
필수 헤더 |
---|---|
_putenv_s |
<stdlib.h> |
_wputenv_s |
<stdlib.h> 또는 <wchar.h> |
호환성에 대한 자세한 내용은 호환성을 참조하십시오.
예제
어떻게 _putenv_s 를 사용하는 지에 대한 샘플은 getenv_s, _wgetenv_s 를 참조하십시오.
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제을 참조하십시오.