_mbsnbcat_s, _mbsnbcat_s_l

Fügt höchstens die ersten n Byte einer anderen Multibyte-Zeichenfolge an. Diese Funktionen sind Versionen von _mbsnbcat, _mbsnbcat_l die Sicherheitsverbesserungen aufweisen, wie in den Sicherheitsfeatures im CRT beschrieben.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).

Syntax

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

Parameter

dest
Auf NULL endende Multibytezielzeichenfolge.

sizeInBytes
Größe des dest-Puffers in Byte.

src
Auf NULL endende Multibytequellzeichenfolge.

count
Anzahl Bytes von src, die an dest angefügt werden.

locale
Zu verwendendes Gebietsschema.

Rückgabewert

Null, wenn erfolgreich, andernfalls ein Fehlercode.

Fehlerbedingungen

dest sizeInBytes src Rückgabewert
NULL Beliebig Beliebig EINVAL
Any <= 0 Beliebig EINVAL
Any Beliebig NULL EINVAL

Wenn eine der Fehlerbedingungen auftritt, generiert die Funktion einen ungültigen Parameterfehler, wie in der Parameterüberprüfung beschrieben. Wenn der Fehler behandelt wird, gibt die Funktion EINVAL zurück und legt errno auf EINVAL fest.

Hinweise

Die Funktion _mbsnbcat_s fügt höchstens die ersten dest Bytes von count an src an. Wenn das Byte, das unmittelbar vor dem Nullzeichen dest steht, ein Leadbyte ist, wird es durch das anfängliche Byte srcüberschrieben. Andernfalls überschreibt das ursprüngliche Byte von src das abschließende NULL-Zeichen von dest. Wenn ein Nullbyte in src auftritt, bevor count Bytes angefügt werden, fügt _mbsnbcat_s alle Bytes von src bis zu dem NULL-Zeichen an. Wenn count größer als die Länge von src ist, wird die Länge von src anstelle von count verwendet. Die resultierende Zeichenfolge wird durch ein NULL-Zeichen beendet. Wenn der Kopiervorgang zwischen Zeichenfolgen ausgeführt wird, die sich überschneiden, ist das Verhalten nicht definiert.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieeinstellung des Gebietsschemas beeinflusst. Weitere Informationen finden Sie unter setlocale. Die Versionen dieser Funktionen sind nahezu identisch, außer dass diejenigen ohne das _l-Suffix das aktuelle Gebietsschema verwenden, und diejenigen mit _l-Suffix den übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.

In C++ wird die Verwendung dieser Funktionen durch Vorlagenüberladungen vereinfacht. Die Überladungen können die Pufferlänge automatisch ableiten, wodurch die Notwendigkeit zum Angeben eines Größenarguments beseitigt wird, und sie können automatisch die neueren, sichereren Funktionen verwenden, um ältere, weniger sichere Funktionen zu ersetzen. Weitere Informationen finden Sie unter "Sichere Vorlagenüberladungen".

Die Debugbibliotheksversionen dieser Funktionen füllen zuerst den Puffer mit 0xFE. Verwenden Sie _CrtSetDebugFillThresholdzum Deaktivieren dieses Verhaltens .

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinzuordnungen

Tchar.h Routine _UNICODE und _MBCS nicht definiert _MBCS Definiert _UNICODE Definiert
_tcsncat_s strncat_s _mbsnbcat_s wcsncat_s
_tcsncat_s_l _strncat_s_l _mbsnbcat_s_l _wcsncat_s_l

Anforderungen

Routine Erforderlicher Header
_mbsnbcat_s <mbstring.h>
_mbsnbcat_s_l <mbstring.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Siehe auch

Zeichenfolgenmanipulation
_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