다음을 통해 공유


_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를 사용합니다. 자세한 내용은 플랫폼 호출 예제을 참조하십시오.

참고 항목

참조

프로세스 및 환경 제어

getenv, _wgetenv

_searchenv, _wsearchenv