strcat_s, wcscat_s, _mbscat_s
문자열을 추가 합니다. 이러한 버전의 strcat, wcscat, _mbscat에는 CRT의 보안 기능에 설명된 대로 보안 향상 기능이 포함됩니다.
중요
_mbscat_s 는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /ZW에서 지원하지 않는 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
);
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
매개 변수
strDestination
Null 종료 수신지 문자열 버퍼입니다.numberOfElements
대상 문자열 버퍼의 크기입니다.strSource
Null 종료 소스 문자열 버퍼입니다.
반환 값
성공 시 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 함수는 strSource 를 strDestination 에 추가하고 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_s 는 와이드 문자 및 strcat_s의 멀티 바이트 문자 버전입니다. wcscat_s의 인수 및 반환 값은 와이드 문자열이며, _mbscat_s는 멀티바이트 문자열입니다. 그렇지 않으면 이들 세 함수는 동일하게 작동합니다.
만약 strDestination 가 null 포인터이거나 null로 끝나는 경우 strSource 가 NULL 포인터이거나 매개 변수 유효성 검사.에 설명된 대로 대상 문자열은 너무 작은 경우 잘못 된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우, 이러한 함수는 EINVAL를 반환하고 errno를 EINVAL로 설정합니다.
C++에서는 템플릿 오버로드로 인해 이러한 함수를 사용하는 것이 보다 간단해 집니다. 오버로드는 버퍼 길이를 자동으로 유추할 수 있으며(크기 인수를 지정할 필요가 없어짐), 기존의 비보안 함수를 보다 최신의 보안 대응 함수로 자동으로 바꿀 수 있습니다. 자세한 내용은 안전한 템플릿 오버로드을 참조하십시오.
이러한 함수의 디버그 버전은 우선 0xFD로 버퍼를 채웁니다. 이 동작을 사용하지 않으려면 _CrtSetDebugFillThreshold를 사용하십시오.
제네릭 텍스트 라우팅 매핑
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> |
추가 호환성 정보는 호환성을 참조하십시오.
예제
strcpy_s, wcscpy_s, _mbscpy_s에 있는 코드 예제를 참조하십시오.
해당 .NET Framework 항목
참고 항목
참조
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