Share via


getenv, _wgetenv

현재 환경에서 값을 가져옵니다.보다 안전한 버전의이 함수를 사용할 수 있습니다. see getenv_s, _wgetenv_s.

중요중요

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

char *getenv( 
   const char *varname 
);
wchar_t *_wgetenv( 
   const wchar_t *varname 
);

매개 변수

  • varname
    환경 변수 이름입니다.

반환 값

환경 테이블 항목 포함 하는 포인터를 반환 합니다. varname.반환 된 포인터를 사용 하는 환경 변수의 값을 수정 하는 것이 안전 하지 않습니다.사용 된 _putenv 함수는 환경 변수의 값을 수정할 수 있습니다.반환 값은 NULL 경우 varname 환경 테이블에서 찾을 수 없습니다.

설명

getenv 함수에 대 한 환경 변수의 목록 검색 varname.getenvWindows 운영 체제에서 대 / 소문자입니다.getenv및 _putenv 전역 변수를 통해 가리키는 환경의 복사본을 사용 _environ 환경에 액세스할 수 있습니다.getenv런타임 라이브러리에 액세스할 수 있는 데이터 구조에 대해서만 하 고 "프로세스에 대 한 운영 체제에서 만든 세그먼트" 환경에서 작동 합니다.따라서 사용 하는 프로그램은 envp 인수를 또는 wmain 잘못 된 정보를 검색할 수 있습니다.

경우 varname 는 NULL에 잘못 된 매개 변수 처리기에 설명 된 대로이 함수를 호출 매개 변수 유효성 검사.실행을 계속 허용 되 면이 함수를 설정 errno 에 EINVAL 를 반환 하 고 NULL.

_wgetenv와이드 문자 버전인 getenv. 인수와 반환 값을 _wgetenv 와이드 문자 문자열입니다._wenviron 전역 변수인 와이드 문자 버전을 _environ.

MBCS 프로그램 (예를 들어, ASCII SBCS 프로그램)에서 _wenviron 처음에 NULL 멀티 바이트 문자 환경이 구성 되므로.다음에 첫 번째 호출에 _wputenv, 또는에 대 한 첫 번째 호출에 _wgetenv (MBCS) 환경에 이미 있는 경우 해당 와이드 문자열 환경이 만들어지고 다음 가리킵니다 _wenviron.

유니코드에서는 비슷하게 (_wmain) 프로그램을 _environ 처음에 NULL 와이드 문자열 환경이 구성 되므로.다음에 첫 번째 호출에 _putenv, 또는에 대 한 첫 번째 호출에 getenv (유니코드) 환경이 이미 있는 경우 해당 MBCS 환경이 만들어지고 다음 가리킵니다 _environ.

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

주의 정보주의

런타임 시스템 유니코드 버전 및 환경에서의 멀티 버전을 모두 유지 관리 하는 경우 드물긴 하지만 이러한 두 환경 버전 정확 하 게 다를 수 있습니다.멀티 바이트 문자 문자열 고유한 고유 유니코드 문자열로 매핑합니다 있지만 고유 유니코드 문자열을 멀티 바이트 문자 문자열 매핑을 반드시 고유 하지 때문입니다.자세한 내용은 _environ, _wenviron.

[!참고]

_putenv_getenv 제품군의 함수는 스레드로부터 안전 합니다._getenv하는 동안 문자열 포인터를 반환할 수 있습니다 _putenv 임의의 오류를 유발 하 여 문자열을 수정 합니다.이러한 함수 호출을 동기화 해야 합니다.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다

_Mbcs가 정의

_Unicode가 정의

_tgetenv

getenv

getenv

_wgetenv

확인 하거나 값을 변경 하는 TZ 환경 변수를 사용 getenv, _putenv 및 _tzset 필요에 따라.에 대 한 자세한 내용은 TZ을 참조 하십시오 _tzset_daylight, 시간대 및 _tzname.

요구 사항

루틴

필수 헤더

getenv

<stdlib.h>

_wgetenv

<stdlib.h> 또는 <wchar.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_getenv.c
// compile with: /W3
// This program uses getenv to retrieve
// the LIB environment variable and then uses
// _putenv to change it to a new value.
 
#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char *libvar;

   // Get the value of the LIB environment variable.
   libvar = getenv( "LIB" ); // C4996
   // Note: getenv is deprecated; consider using getenv_s instead

   if( libvar != NULL )
      printf( "Original LIB variable is: %s\n", libvar );

   // Attempt to change path. Note that this only affects the environment
   // variable of the current process. The command processor's
   // environment is not changed.
   _putenv( "LIB=c:\\mylib;c:\\yourlib" ); // C4996
   // Note: _putenv is deprecated; consider using putenv_s instead

   // Get new value.
   libvar = getenv( "LIB" ); // C4996

   if( libvar != NULL )
      printf( "New LIB variable is: %s\n", libvar );
}
  

해당 .NET Framework 항목

System::Environment::GetEnvironmentVariable

참고 항목

참조

프로세스 및 환경 제어

_putenv, _wputenv

환경 상수