_environ, _wenviron

_environ 변수는 프로세스 환경을 구성 하는 멀티 바이트 문자 문자열에 대 한 포인터의 배열에 대 한 포인터입니다.이 전역 변수를 더 안전한 기능 버전에 대 한 되지 않습니다 getenv_s, _wgetenv_s_putenv_s, _wputenv_s, 전역 변수 대신 사용 해야 될._environStdlib.h에 선언 되어 있습니다.

중요중요

이 API는 Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수.

extern char **_environ;

설명

사용 하는 프로그램에는 main 함수를 _environ 운영 체제 환경에서 가져온 설정에 따라 프로그램을 시작할 때 초기화 됩니다.환경 폼의 하나 이상의 항목으로 구성 됩니다.

ENVVARNAME=string

getenv_s및 putenv_s 사용의 _environ 변수에 액세스 하 고 환경 테이블을 수정할 수 있습니다.때 _putenv 를 추가 하거나 환경 설정을 삭제 하 라고 환경 표 크기를 변경 합니다.해당 위치에서 메모리를 프로그램의 메모리 요구 사항에 따라 변경할 수도 있습니다.값을 _environ 에 따라 자동으로 조정 됩니다.

_wenviron 로 Stdlib.h에 변수를 선언 합니다.

extern wchar_t **_wenviron;

와이드 문자 버전인 _environ.사용 하는 프로그램에는 wmain 함수를 _wenviron 운영 체제 환경에서 가져온 설정에 따라 프로그램을 시작할 때 초기화 됩니다.

사용 하는 프로그램에서 main, _wenviron 처음에 NULL 멀티 바이트 문자 환경이 구성 되므로.첫 번째 호출에서 _wgetenv 또는 _wputenv, 해당 와이드 문자열 환경이 만들어지고 가리킵니다 _wenviron.

마찬가지로, 사용 하는 프로그램에서 wmain, _environ 처음에 NULL 와이드 문자열 환경이 구성 되므로.첫 번째 호출에서 _getenv 또는 _putenv, 해당 문자열 멀티 바이트 문자 환경이 만들어지고 가리킵니다 _environ.

프로그램의 환경 (MBCS와 유니코드)의 복사본 두 개를 동시에 존재할 때 런타임 시스템 실행 시간이 느린 두 복사본을 유지 해야 합니다.호출 될 때마다 예를 들어, _putenv, 호출을 _wputenv 두 환경 문자열에 대응 되도록 자동으로 실행 될 수도 있습니다.

주의 정보주의

드물긴 하지만 런타임 시스템 유니코드 버전 및 환경에서의 멀티 버전을 모두 유지 관리 하는 경우 이러한 두 환경 버전 정확 하 게 일치 됩니다.멀티 바이트 문자 문자열 고유한 고유 유니코드 문자열로 매핑합니다 있지만 고유 유니코드 문자열을 멀티 바이트 문자 문자열 매핑을 반드시 고유 하지 때문입니다.따라서 두 개의 서로 다른 유니코드 문자열 같은 멀티 바이트 문자열을 매핑할 수 있습니다.

폴링 _environ 에 유니코드 컨텍스트 때 의미가 없습니다 /MD 또는 /MDd 링크를 사용 합니다.CRT DLL에 대 한 프로그램의 유형 (전체 또는 멀티 바이트) 알 수 없습니다.가장 가능성이 높은 시나리오 이므로 멀티 바이트 형식 에서만 만들어집니다.

이 발생할 수 있습니다 다음 의사 코드로 나타낸 것입니다.

int i, j;
i = _wputenv( "env_var_x=string1" );  // results in the implicit call:
                                      // putenv ("env_var_z=string1")
j = _wputenv( "env_var_y=string2" );  // also results in implicit call:
                                      // putenv("env_var_z=string2")

이 예제에 사용 된 표기법을 문자열을 C 문자열 리터럴이 아닙니다. 유니코드 환경 문자열 리터럴에서 나타내는 자리 표시자를 대신 들의 _wputenv 환경 호출 및 멀티 바이트 문자열에서 putenv 호출 합니다.문자 자리 표시자의x'및'y' 두 가지 유니코드 환경 문자열 고유 현재 MBCS 문자에 매핑되지 않습니다.대신, 모두 일부 MBCS 문자를 매핑할 'z' 기본 결과 문자열을 변환 하는 시도입니다.

멀티 바이트 환경에서의 값에 따라서 "env_var_z" 암시적 호출 후 putenv 것 "string1", 하지만 두 번째 암시적 호출에이 값이 덮어쓰여질 putenv, 값을 "env_var_z"로 설정 된"string2".유니코드 환경 (에서 _wenviron) 및 멀티 바이트 환경 (에서 _environ)이이 일련의 호출을 뒤 따라서 다를 수 있습니다.

참고 항목

참조

전역 변수

getenv, _wgetenv

getenv_s, _wgetenv_s

_putenv, _wputenv

_putenv_s, _wputenv_s