다음을 통해 공유


_mbccpy_s, _mbccpy_s_l

한 문자열에서 다른 문자열로 멀티바이트 문자를 복사합니다. 이러한 버전은 CRT_mbccpy_l_mbccpy 보안 기능에 설명된 대로 향상된 보안 기능을 제공합니다.

Important

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

구문

errno_t _mbccpy_s(
   unsigned char *dest,
   size_t buffSizeInBytes,
   int * pCopied,
   const unsigned char *src
);
errno_t _mbccpy_s_l(
   unsigned char *dest,
   size_t buffSizeInBytes,
   int * pCopied,
   const unsigned char *src,
   _locale_t locale
);
template <size_t size>
errno_t _mbccpy_s(
   unsigned char (&dest)[size],
   int * pCopied,
   const unsigned char *src
); // C++ only
template <size_t size>
errno_t _mbccpy_s_l(
   unsigned char (&dest)[size],
   int * pCopied,
   const unsigned char *src,
   _locale_t locale
); // C++ only

매개 변수

dest
복사 대상입니다.

buffSizeInBytes
대상 버퍼의 크기입니다.

pCopied
복사된 바이트 수로 채워집니다(성공할 경우 1 또는 2). 개수가 중요하지 않은 경우 NULL을 전달합니다.

src
복사할 멀티바이트 문자입니다.

locale
사용할 로캘입니다.

반환 값

성공 시 0이고, 실패 시 오류 코드입니다. 바이트 이상이 buffSizeinBytes 복사dest될 경우 src 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다.dest NULL 실행을 계속할 수 있으면 함수가 반환 EINVAL되고 errno EINVAL.

설명

_mbccpy_s 함수는 src에서 dest로 하나의 멀티바이트 문자를 복사합니다. src 암시적 호출_ismbblead에 의해 결정된 멀티바이트 문자의 리드 바이트를 가리키지 않으면 가리키는 단일 바이트가 src 복사됩니다. 선행 바이트를 가리키지만 다음 바이트가 0이므로 유효하지 않으면 src 0이 복사 dest되고 , errno 로 설정 EILSEQ되고 함수가 반환됩니다 EILSEQ.

_mbccpy_s 에서는 null 종결자를 추가하지 않습니다. 그러나 null 문자를 가리키는 경우 src null은 일반 싱글 바이트 복사본으로 복사 dest 됩니다.

pCopied의 값은 복사된 바이트 수로 채워집니다. 연산이 성공할 경우 가능한 값은 1과 2입니다. NULL이 전달되면 이 매개 변수는 무시됩니다.

src dest에 복사됨 pCopied 반환 값
비선행 바이트 비선행 바이트 1 0
0 0 1 0
선행 바이트와 그 뒤의 0이 아닌 값 선행 바이트와 그 뒤의 0이 아닌 값 2 0
선행 바이트와 그 뒤의 0 0 1 EILSEQ

두 번째 행은 첫 번째 행의 특수한 경우일 뿐입니다. 테이블 buffSizeInBytes>은 = pCopied.

_mbccpy_s 은 로캘 종속 동작에 대해 현재 로캘을 사용합니다. _mbccpy_s_l_mbccpy_s와 동일합니다. 단, _mbccpy_s_l은 모든 로캘 종속 동작에 대해 전달된 로캘을 사용합니다.

C++에서는 템플릿 오버로드를 통해 이러한 함수를 사용하는 것이 더욱 간단해집니다. 오버로드는 버퍼 길이를 자동으로 유추할 수 있으므로 크기 인수를 지정할 필요가 없습니다. 자세한 내용은 안전한 템플릿 오버로드를 참조하세요.

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

일반 텍스트 루틴 매핑

Tchar.h 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tccpy_s 매크로 또는 인라인 함수에 매핑됩니다. _mbccpy_s 매크로 또는 인라인 함수에 매핑됩니다.

요구 사항

루틴에서 반환된 값 필수 헤더
_mbccpy_s <mbstring.h>
_mbccpy_s_l <mbstring.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

참고 항목

Locale
멀티바이트 문자 시퀀스 해석
_mbclen, , mblen_mblen_l