다음을 통해 공유


_dupenv_s, _wdupenv_s

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

Important

이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.

구문

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, 실패 시 오류 코드가 나타납니다.

이러한 함수는 해당 매개 변수의 유효성을 검사합니다. if buffer 또는 varname is, NULL잘못된 매개 변수 처리기가 매개 변수 유효성 검사에 설명된 대로 호출됩니다. 계속해서 실행하도록 허용한 경우 이 함수는 errnoEINVAL로 설정하고 EINVAL을 반환합니다.

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

설명

_dupenv_s 함수는 varname애 대한 환경 변수 목록을 검색합니다. 변수가 있는 경우 _dupenv_s는 버퍼를 할당하고 변수 값을 버퍼로 복사합니다. 버퍼의 주소 및 길이가 buffernumberOfElements에서 반환됩니다. 버퍼 자체를 _dupenv_s getenv_s할당하기 때문에 , . _wgetenv_s

참고 항목

호출을 통해 메모리 free를 해제하는 것은 호출 프로그램의 책임입니다.

변수를 찾을 buffer 수 없으면 0으로 NULLnumberOfElements 설정되고 반환 값은 0으로 설정됩니다. 이 상황은 오류 조건으로 간주되지 않기 때문입니다.

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

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

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

_wdupenv_s_dupenv_s의 와이드 문자 버전이며, _wdupenv_s의 인수는 와이드 문자열입니다. _wenviron 전역 변수는 _environ의 와이드 문자 버전입니다. 에 대한 자세한 내용은 다음의 getenv_s_wgetenv_s비고를 참조하세요._wenviron

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

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)

참고 항목

프로세스 및 환경 제어
환경 상수
_dupenv_s_dbg, _wdupenv_s_dbg
getenv_s, _wgetenv_s
_putenv_s, _wputenv_s