_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
잘못된 매개 변수 처리기가 매개 변수 유효성 검사에 설명된 대로 호출됩니다. 계속해서 실행하도록 허용한 경우 이 함수는 errno
를 EINVAL
로 설정하고 EINVAL
을 반환합니다.
이러한 함수가 충분한 메모리를 할당할 수 없는 경우 0으로 NULL
numberOfElements
설정하고 buffer
반환ENOMEM
합니다.
설명
_dupenv_s
함수는 varname
애 대한 환경 변수 목록을 검색합니다. 변수가 있는 경우 _dupenv_s
는 버퍼를 할당하고 변수 값을 버퍼로 복사합니다. 버퍼의 주소 및 길이가 buffer
및 numberOfElements
에서 반환됩니다. 버퍼 자체를 _dupenv_s
getenv_s
할당하기 때문에 , . _wgetenv_s
참고 항목
호출을 통해 메모리 free
를 해제하는 것은 호출 프로그램의 책임입니다.
변수를 찾을 buffer
수 없으면 0으로 NULL
numberOfElements
설정되고 반환 값은 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