Share via


_dupenv_s_dbg, _wdupenv_s_dbg

현재 환경에서 값을 가져옵니다.버전 _dupenv_s, _wdupenv_s 에 메모리를 할당 하는 _malloc_dbg 추가 디버깅 정보를 제공 합니다.

errno_t _dupenv_s_dbg(
   char **buffer,
   size_t *numberOfElements,
   const char *varname,
   int blockType,
   const char *filename,
   int linenumber
);
errno_t _wdupenv_s_dbg(
   wchar_t **buffer,
   size_t * numberOfElements,
   const wchar_t *varname,
   int blockType,
   const char *filename,
   int linenumber
);

매개 변수

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

  • numberOfElements
    Size of buffer.

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

  • blockType
    요청한 메모리 블록 형식: _CLIENT_BLOCK 또는 _NORMAL_BLOCK.

  • filename
    소스 파일의 이름에 대 한 포인터 또는 NULL.

  • linenumber
    소스 파일에서 여러 줄 또는 NULL.

반환 값

성공, 실패 시 오류 코드를 0입니다.

이러한 함수 매개 변수의 유효성을 검사 합니다. 경우 buffer 또는 varname 입니다 NULL, 잘못 된 매개 변수 처리기의 설명에 따라 호출 됩니다 매개 변수 유효성 검사.함수 실행을 계속 수 있으면 설정 errno 에 EINVAL 를 반환 하 고 EINVAL.

이러한 함수에서 필요한 메모리를 할당할 수 없습니다 경우 buffer 에 NULL 및 numberOfElements 0과 반환이 ENOMEM.

설명

_dupenv_s_dbg 및 _wdupenv_s_dbg 함수는 동일한 _dupenv_s 및 _wdupenv_s 를 제외 하 고, _DEBUG 입니다 정의 디버그 버전의 이러한 함수를 사용 malloc, _malloc_dbg환경 변수 값에 대 한 메모리를 할당 하는.디버깅 기능에 대 한 내용은 _malloc_dbg를 참조 하십시오 _malloc_dbg.

대부분의 경우 이러한 함수를 명시적으로 호출할 필요가 없습니다.대신, 플래그를 정의할 수 있습니다 _CRTDBG_MAP_ALLOC.때 _CRTDBG_MAP_ALLOC 정의 되 고 호출 하 _dupenv_s 및 _wdupenv_s 으로 다시 매핑되는 _dupenv_s_dbg 및 _wdupenv_s_dbg각각에 blockType 설정 _NORMAL_BLOCK.따라서 힙 블록으로 표시 하지 않는 경우 이러한 함수를 명시적으로 호출할 필요가 없습니다 _CLIENT_BLOCK.블록 형식에 대 한 자세한 내용은 디버그 힙의 블록 형식.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되지 않았습니다.

_Mbcs가 정의

_Unicode가 정의

_tdupenv_s_dbg

_dupenv_s_dbg

_dupenv_s_dbg

_wdupenv_s_dbg

요구 사항

루틴

필수 헤더

_dupenv_s_dbg

<crtdbg.h>

_wdupenv_s_dbg

<crtdbg.h>

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

예제

// crt_dupenv_s_dbg.c
#include  <stdlib.h>
#include <crtdbg.h>

int main( void )
{
   char *pValue;
   size_t len;
   errno_t err = _dupenv_s_dbg( &pValue, &len, "pathext",
      _NORMAL_BLOCK, __FILE__, __LINE__ );
   if ( err ) return -1;
   printf( "pathext = %s\n", pValue );
   free( pValue );
   err = _dupenv_s_dbg( &pValue, &len, "nonexistentvariable",
      _NORMAL_BLOCK, __FILE__, __LINE__ );
   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

참고 항목

참조

프로세스 및 환경 제어

환경 상수

getenv_s, _wgetenv_s

_putenv_s, _wputenv_s