strcat_s, wcscat_s, _mbscat_s, _mbscat_s_l

문자열을 추가합니다. 이러한 버전의 경우wcscat_mbscatCRTstrcat보안 기능에 설명된 대로 보안 기능이 향상되었습니다.

Important

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

구문

errno_t strcat_s(
   char *strDestination,
   size_t numberOfElements,
   const char *strSource
);
errno_t wcscat_s(
   wchar_t *strDestination,
   size_t numberOfElements,
   const wchar_t *strSource
);
errno_t _mbscat_s(
   unsigned char *strDestination,
   size_t numberOfElements,
   const unsigned char *strSource
);
errno_t _mbscat_s_l(
   unsigned char *strDestination,
   size_t numberOfElements,
   const unsigned char *strSource,
   _locale_t locale
);
template <size_t size>
errno_t strcat_s(
   char (&strDestination)[size],
   const char *strSource
); // C++ only
template <size_t size>
errno_t wcscat_s(
   wchar_t (&strDestination)[size],
   const wchar_t *strSource
); // C++ only
template <size_t size>
errno_t _mbscat_s(
   unsigned char (&strDestination)[size],
   const unsigned char *strSource
); // C++ only
template <size_t size>
errno_t _mbscat_s_l(
   unsigned char (&strDestination)[size],
   const unsigned char *strSource,
   _locale_t locale
); // C++ only

매개 변수

strDestination
Null 종료 대상 문자열 버퍼입니다.

numberOfElements
대상 문자열 버퍼의 크기입니다.

strSource
null 종료 소스 문자열 버퍼입니다.

locale
사용할 로캘입니다.

반환 값

성공 시 0이고, 실패 시 오류 코드입니다.

오류 조건

strDestination numberOfElements strSource 반환 값 strDestination의 내용
NULL 또는 종료되지 않음 any any EINVAL 수정 안 됨
any any NULL EINVAL strDestination[0]을 0으로 설정
any 0 또는 너무 작음 any ERANGE strDestination[0]을 0으로 설정

설명

strcat_s 함수는 strSourcestrDestination에 추가하고 결과 문자열을 null 문자로 종료합니다. strSource의 초기 문자가 strDestination의 종료 null 문자를 덮어씁니다. 소스 문자열과 대상 문자열이 겹치는 경우 strcat_s의 동작이 정의되지 않습니다.

두 번째 매개 변수는 다시 기본 크기가 아니라 버퍼의 총 크기입니다.

char buf[16];
strcpy_s(buf, 16, "Start");
strcat_s(buf, 16, " End");               // Correct
strcat_s(buf, 16 - strlen(buf), " End"); // Incorrect

wcscat_s_mbscat_sstrcat_s의 와이드 문자 및 멀티바이트 문자 버전입니다. 인수 및 반환 값 wcscat_s 은 와이드 문자열입니다. 인수 및 반환 값 _mbscat_s 은 멀티바이트 문자열입니다. 그렇지 않으면 이들 세 함수는 동일하게 작동합니다.

strDestination null 포인터이거나 null로 종료되지 않았거나 NULLstrSource 포인터이거나 대상 문자열이 너무 작은 경우 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 EINVAL를 반환하고 errnoEINVAL로 설정합니다.

접미사가 있는 _l 함수 버전은 동작이 동일하지만 현재 로캘 대신 전달된 로캘 매개 변수를 사용합니다. 자세한 내용은 Locale을 참조하세요.

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

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

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

일반 텍스트 루틴 매핑

TCHAR.H 루틴 _UNICODE 정의 _MBCS 되지 않음 _MBCS 정의 _UNICODE 정의
_tcscat_s strcat_s _mbscat_s wcscat_s

요구 사항

루틴에서 반환된 값 필수 헤더
strcat_s <string.h>
wcscat_s <string.h> 또는 <wchar.h>
_mbscat_s <mbstring.h>

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

예시

에서 _mbscpy_swcscpy_s코드 예제를 참조하세요.strcpy_s

참고 항목

문자열 조작
strncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l
strspn, wcsspn, _mbsspn, _mbsspn_l