_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