다음을 통해 공유


_dupenv_s, _wdupenv_s

현재 환경에서 값을 가져옵니다.

중요

이 API는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 CRT 함수는 /ZW 옵션을 지원하지 않음을 참조하세요.

errno_t _dupenv_s(    char **buffer,    size_t *numberOfElements,    const char *varname ); errno_t _wdupenv_s(    wchar_t **buffer,    size_t *numberOfElements,    const wchar_t *varname );

매개 변수

  • buffer
    변수 값을 저장하는 버퍼입니다.

  • numberOfElements
    buffer의 크기입니다.

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

반환 값

성공 시 0, 실패 시 오류 코드가 나타납니다.

이러한 함수는 자신의 매개 변수에 대한 유효성을 검사합니다. 그러나 buffer 또는 varname이 NULL인 경우 매개 변수 유효성 검사에서 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용한 경우 이 함수는 errno를 EINVAL로 설정하고 EINVAL을 반환합니다.

충분한 메모리를 할당할 수 없는 경우 이러한 함수는 buffer를 NULL로 설정하고 numberOfElements를 0으로 설정한 다음 ENOMEM을 반환합니다.

설명

_dupenv_s 함수는 varname애 대한 환경 변수 목록을 검색합니다. 변수가 있는 경우 _dupenv_s는 버퍼를 할당하고 변수 값을 버퍼로 복사합니다. 버퍼의 주소 및 길이가 buffer 및 numberOfElements에서 반환됩니다. 버퍼 자체를 할당하여 _dupenv_s는 getenv_s, _wgetenv_s에 대한 더욱 편리한 제안을 제공합니다.

참고

free를 호출하여 메모리를 확보하는 것은 호출하는 프로그램이 해야 할 일입니다.

변수가 없는 경우 이 상황이 오류 조건으로 간주되는 것은 아니기 때문에 buffer는 NULL로 설정되고 numberOfElements는 0으로 설정되며 반환 값은 0입니다.

버퍼 크기에 관심이 없는 경우에는 numberOfElements에 대해 NULL을 전달할 수 있습니다.

_dupenv_s는 Windows 운영 체제에서 대/소문자를 구분하지 않습니다. _dupenv_s는 전역 변수 _environ이 가리키는 환경의 복사본을 사용하여 환경에 액세스합니다. _environ에 대한 자세한 내용은 getenv_s, _wgetenv_s의 설명을 참조하세요.

buffer의 값은 환경 변수 값의 복사본입니다. 이 값을 수정하더라도 환경에 영향을 미치지 않습니다. _putenv_s, _wputenv_s 함수를 사용하여 환경 변수 값을 수정합니다.

_wdupenv_s는 _dupenv_s의 와이드 문자 버전이며, _wdupenv_s의 인수는 와이드 문자열입니다. _wenviron 전역 변수는 _environ의 와이드 문자 버전입니다. _wenviron에 대한 자세한 내용은 getenv_s, _wgetenv_s의 설명을 참조하세요.

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 정의되지 않음

_MBCS 정의됨

_UNICODE 정의됨

_tdupenv_s

_dupenv_s

_dupenv_s

_wdupenv_s

요구 사항

루틴

필수 헤더

_dupenv_s

<stdlib.h>

_wdupenv_s

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

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예제

// crt_dupenv_s.c
#include  <stdlib.h>

int main( void )
{
   char *pValue;
   size_t len;
   errno_t err = _dupenv_s( &pValue, &len, "pathext" );
   if ( err ) return -1;
   printf( "pathext = %s\n", pValue );
   free( pValue );
   err = _dupenv_s( &pValue, &len, "nonexistentvariable" );
   if ( err ) return -1;
   printf( "nonexistentvariable = %s\n", pValue );
   free( pValue ); // It's OK to call free with NULL
}

샘플 출력

pathext = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.pl
nonexistentvariable = (null)

해당 .NET Framework 항목

System::Environment::GetEnvironmentVariable

참고 항목

참조

프로세스 및 환경 제어

환경 상수

_dupenv_s_dbg, _wdupenv_s_dbg

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s