_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ść errno
EINVAL
.
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 src
count
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. Aby uzyskać więcej informacji, zobacz 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 rutyna |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_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