strcat_s, wcscat_s, _mbscat_s, _mbscat_s_l

Dołącza ciąg. Te wersje programu wcscat_mbscatstrcat, mają ulepszenia zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.

Ważne

_mbscat_snie można jej _mbscat_s_l używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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

Parametry

strDestination
Bufor ciągu docelowego zakończony o wartości null.

numberOfElements
Rozmiar buforu ciągu docelowego.

strSource
Bufor ciągu źródłowego zakończony o wartości null.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Zero w przypadku powodzenia; kod błędu dotyczący błędu.

Warunki błędu

strDestination numberOfElements strSource Wartość zwracana Zawartość strDestination
NULL lub nieokreślone dowolny dowolny EINVAL niezmodyfikowane
dowolny dowolny NULL EINVAL strDestination[0] ustaw wartość 0
dowolny 0 lub za mała dowolny ERANGE strDestination[0] ustaw wartość 0

Uwagi

Funkcja strcat_s dołącza strSource i strDestination kończy wynikowy ciąg znakiem null. Początkowy znak strSource zastępowania kończącego znak null .strDestination Zachowanie elementu strcat_s jest niezdefiniowane, jeśli ciągi źródłowe i docelowe nakładają się na siebie.

Drugi parametr to całkowity rozmiar buforu, a nie pozostały rozmiar:

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

wcscat_si _mbscat_s są wersjami znaków wielobajtowych i wielobajtowych .strcat_s Argumenty i wartość zwracana wcscat_s wartości to ciągi wieloznakowe. Argumenty i wartość zwracana wartości to ciągi wielobajtowe _mbscat_s znaków. Te trzy funkcje zachowują się identycznie inaczej.

Jeśli strDestination jest wskaźnikiem o wartości null lub nie jest zakończony wartością null, lub jeśli strSource jest wskaźnikiem, lub jeśli ciąg docelowy jest za mały, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem NULL w temacie Walidacja parametrów. Jeśli wykonanie jest dozwolone do kontynuowania, te funkcje zwracają EINVAL i ustawiają wartość errnoEINVAL.

Wersje funkcji, które mają sufiks, mają _l takie samo zachowanie, ale użyj parametru ustawień regionalnych przekazanych zamiast bieżących ustawień regionalnych. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

W języku C++używanie tych funkcji jest uproszczone przez przeciążenia szablonu; przeciążenia mogą automatycznie wnioskować długość buforu (eliminując konieczność określenia argumentu rozmiaru) i mogą automatycznie zastępować starsze, niezabezpieczone funkcje nowszymi, bezpiecznymi odpowiednikami. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.

Wersje biblioteki debugowania tych funkcji najpierw wypełniają bufor 0xFE. Aby wyłączyć to zachowanie, użyj polecenia _CrtSetDebugFillThreshold.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

TCHAR.H Rutynowych _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tcscat_s strcat_s _mbscat_s wcscat_s

Wymagania

Procedura Wymagany nagłówek
strcat_s <string.h>
wcscat_s <string.h> lub <wchar.h>
_mbscat_s <mbstring.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

Zobacz przykładowy kod w pliku strcpy_s, _mbscpy_swcscpy_s.

Zobacz też

Manipulowanie ciągami
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