_mbsnbcat_s, _mbsnbcat_s_l

Dołącza do ciągu znaków wielobajtowych, co najwyżej pierwszych n bajtów innego ciągu wielobajtowego. Te funkcje to wersje programu _mbsnbcat, _mbsnbcat_l które mają ulepszenia zabezpieczeń, zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.

Ważne

Tego interfejsu API nie można 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 _mbsnbcat_s(
   unsigned char *dest,
   size_t sizeInBytes,
   const unsigned char *src,
   size_t count
);
errno_t _mbsnbcat_s_l(
   unsigned char *dest,
   size_t sizeInBytes,
   const unsigned char *src,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t _mbsnbcat_s(
   unsigned char (&dest)[size],
   const unsigned char *src,
   size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcat_s_l(
   unsigned char (&dest)[size],
   const unsigned char *src,
   size_t count,
   _locale_t locale
); // C++ only

Parametry

dest
Ciąg docelowy o znakach wielobajtowych zakończonych wartościami null.

sizeInBytes
Rozmiar buforu dest w bajtach.

src
Ciąg źródłowy z wieloma znakami o wartości null.

count
Liczba bajtów z src do dołączenia do dest.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Zero w przypadku powodzenia; w przeciwnym razie kod błędu.

Warunki błędu

dest sizeInBytes src Wartość zwracana
NULL dowolny dowolny EINVAL
Dowolne <= 0 dowolny EINVAL
Dowolne dowolny NULL EINVAL

Jeśli wystąpi którykolwiek z warunków błędu, funkcja generuje nieprawidłowy błąd parametru, zgodnie z opisem w temacie Walidacja parametru. Jeśli błąd jest obsługiwany, funkcja zwraca EINVAL wartość i ustawia wartość errnoEINVAL.

Uwagi

Funkcja _mbsnbcat_s dołącza co najwyżej do dest, pierwszych count bajtów .src Jeśli bajt, który bezpośrednio poprzedza znak null w dest obiekcie, jest bajtem ołowiu, jest zastępowany przez początkowy bajt src. W przeciwnym razie początkowy bajt src zastępowania przerywającego znaku null elementu dest. Jeśli bajt o wartości null pojawia się przed srccount dołączeniem bajtów, _mbsnbcat_s dołącza wszystkie bajty z src, aż do znaku null. Jeśli count jest większa niż długość src, długość src elementu jest używana zamiast count. Wynikowy ciąg jest przerywany znakiem null. Jeśli kopiowanie odbywa się między ciągami nakładającymi się, zachowanie jest niezdefiniowane.

Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. W celu uzyskania więcej informacji, zobacz następujący temat: setlocale. Wersje tych funkcji są identyczne, z tą różnicą, że te, które nie mają _l sufiksu, używają bieżących ustawień regionalnych, a te, które mają _l sufiks, zamiast tego używają parametru ustawień regionalnych, który jest przekazywany. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

W języku C++użycie tych funkcji jest uproszczone przez przeciążenia szablonów. Przeciążenia mogą automatycznie wnioskować długość buforu, co eliminuje konieczność określenia argumentu rozmiaru i mogą automatycznie używać nowszych, bezpieczniejszych funkcji w celu zastąpienia starszych, mniej bezpiecznych funkcji. 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
_tcsncat_s strncat_s _mbsnbcat_s wcsncat_s
_tcsncat_s_l _strncat_s_l _mbsnbcat_s_l _wcsncat_s_l

Wymagania

Procedura Wymagany nagłówek
_mbsnbcat_s <mbstring.h>
_mbsnbcat_s_l <mbstring.h>

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

Zobacz też

Manipulowanie ciągami
_mbsnbcmp, _mbsnbcmp_l
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
_mbsnbcpy, _mbsnbcpy_l
_mbsnbcpy_s, _mbsnbcpy_s_l
_mbsnbset, _mbsnbset_l
strncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l
strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l