_dupenv_s, _wdupenv_s
현재 환경에서 값을 가져옵니다.
중요 |
---|
이 API는 Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 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
Size of 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 이므로이 경우는 오류 조건으로 간주 되지 않습니다.
버퍼의 크기에 관심이 없는 경우 전달할 수 있습니다 NULL 에 대 한 numberOfElements.
_dupenv_sWindows 운영 체제에서 대 / 소문자입니다._dupenv_s전역 변수를 통해 가리키는 환경의 복사본을 사용 하 여 _environ 환경에 액세스할 수 있습니다.설명 부분을 참조 하십시오. getenv_s, _wgetenv_s 에 대 한 _environ.
값을 buffer 그렇지 않으면 환경 변수 값의 복사본입니다 수정 없는 환경에는 영향을 주지 않습니다.사용 된 _putenv_s, _wputenv_s 함수는 환경 변수의 값을 수정할 수 있습니다.
_wdupenv_s와이드 문자 버전인 _dupenv_s. 인수를 _wdupenv_s 와이드 문자 문자열입니다._wenviron 전역 변수인 와이드 문자 버전을 _environ.설명 부분을 참조 하십시오. getenv_s, _wgetenv_s 에 대 한 자세한 내용은 _wenviron.
일반 텍스트 루틴 매핑
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