다음을 통해 공유


_mbsnbcpy_s, _mbsnbcpy_s_l

문자열의 n바이트 단위를 대상 문자열에 복사합니다. 이러한 버전은 CRT_mbsnbcpy_l_mbsnbcpy 보안 기능에 설명된 대로 향상된 보안 기능을 제공합니다.

Important

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

구문

errno_t _mbsnbcpy_s(
   unsigned char * strDest,
   size_t sizeInBytes,
   const unsigned char * strSource,
   size_t count
);
errno_t _mbsnbcpy_s_l(
   unsigned char * strDest,
   size_t sizeInBytes,
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t _mbsnbcpy_s(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcpy_s_l(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
); // C++ only

매개 변수

strDest
복사할 문자열의 대상입니다.

sizeInBytes
대상 버퍼 크기입니다.

strSource
복사할 문자열입니다.

count
복사할 바이트 수입니다.

locale
사용할 로캘입니다.

반환 값

성공한 경우에는 0이고, 잘못된 매개 변수가 전달된 경우에는 EINVAL입니다.

설명

_mbsnbcpy_s 함수는 strSource에서 strDestcount바이트를 복사합니다. 입력 문자열 중 하나가 null 포인터이거나 sizeInBytes count 0인 크기를 strDest초과하는 경우 count 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우 함수는 EINVAL을 반환합니다. 소스 문자열과 대상 문자열이 겹치는 경우 _mbsnbcpy_s의 동작이 정의되지 않습니다.

출력 값은 로캘의 LC_CTYPE 범주 설정에 영향을 받습니다. 자세한 내용은 setlocale를 참조하세요. _l 접미사가 없는 이러한 함수 버전은 이 로캘 종속 동작에 현재 로캘을 사용하며, _l 접미사가 있는 버전은 전달된 로캘 매개 변수를 대신 사용하는 경우를 제외하고는 동일합니다. 자세한 내용은 Locale을 참조하세요.

참고 항목

이 함수의 안전하지 않은 버전과 달리 _mbsnbcpy_s는 null 채우기를 수행하지 않으며 항상 null 종료 문자열입니다.

C++에서는 템플릿 오버로드로 인해 이러한 함수를 사용하는 것이 보다 간단해 집니다. 오버로드는 버퍼 길이를 자동으로 유추할 수 있으며(크기 인수를 지정할 필요가 없어짐), 기존의 비보안 함수를 보다 최신의 보안 대응 함수로 자동으로 바꿀 수 있습니다. 자세한 내용은 안전한 템플릿 오버로드를 참조하세요.

이러한 함수의 디버그 라이브러리 버전은 먼저 버퍼를 0xFE 채웁니다. 이 동작을 사용하지 않도록 설정하려면 .를 사용합니다 _CrtSetDebugFillThreshold.

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

일반 텍스트 루틴 매핑

Tchar.h 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tcsncpy_s _strncpy_s _mbsnbcpy_s _wcsncpy_s
_tcsncpy_s_l _strncpy_s_l _mbsnbcpy_s_l _wcsncpy_s_l

요구 사항

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

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

참고 항목

문자열 조작
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt_mbsnccnt_l
_mbsnbicmp, _mbsnbicmp_l
_mbsnbset, _mbsnbset_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy_mbsncpy_l