Freigeben über


_mbsnbcpy_s, _mbsnbcpy_s_l

Kopiert n Bytes einer Zeichenfolge in eine Zielzeichenfolge. Diese Versionen von _mbsnbcpy, _mbsnbcpy_l verfügen über Sicherheitsverbesserungen, wie in 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 _mbsnbcpy_s(
   unsigned char * strDest,
   size_t sizeInBytes,
   const unsigned char * strSource,
   size_t count
);
errno_t _mbsnbcpy_s_l(
   unsigned char * strDest,
   size_t sizeInBytes,
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t _mbsnbcpy_s(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcpy_s_l(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
); // C++ only

Parameter

strDest
Ziel für die zu kopierende Zeichenfolge.

sizeInBytes
Größe des Zielpuffers.

strSource
Zu kopierende Zeichenfolge.

count
Anzahl der zu kopierenden Bytes.

locale
Zu verwendendes Gebietsschema.

Rückgabewert

Bei Erfolg gleich 0 (null); EINVAL, wenn ein ungültiger Parameter übergeben wurde.

Hinweise

Die _mbsnbcpy_s-Funktion kopiert count Bytes von strSource nach strDest. Wenn count die Größe strDestder Eingabezeichenfolgen überschreitet, ist eine der Eingabezeichenfolgen ein NULL-Zeiger oder count sizeInBytes 0, ruft die Funktion den ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt die Funktion EINVAL zurück. Wenn sich Quell- und Zielzeichenfolgen überlappen, ist das Verhalten von _mbsnbcpy_s undefiniert.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieeinstellung des Gebietsschemas beeinflusst. Weitere Informationen finden Sie unter setlocale. Die Versionen dieser Funktionen ohne das _l-Suffix verwenden das aktuelle Gebietsschema für dieses vom Gebietsschema abhängige Verhalten; die Versionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch stattdessen den ihnen übergebenen Gebietsschemaparameter. Weitere Informationen finden Sie unter Locale.

Hinweis

Anders als die nicht sichere Version dieser Funktion füllt _mbsnbcpy_s nichts mit 0 (null) auf, und die Zeichenfolge wird immer mit NULL beendet.

In C++ wird die Verwendung dieser Funktionen durch Vorlagenüberladungen vereinfacht; die Überladungen können automatisch Rückschlüsse auf die Pufferlänge ziehen (wodurch kein Größenargument mehr angegeben werden muss), und sie können automatisch die älteren, nicht sicheren Funktionen durch ihre neueren, sicheren Entsprechungen ersetzen. Weitere Informationen finden Sie unter Secure Template Overloads.

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. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.

Mapping generischer Textroutinen

Tchar.h-Routine _UNICODE und _MBCS nicht definiert _MBCS definiert _UNICODE definiert
_tcsncpy_s _strncpy_s _mbsnbcpy_s _wcsncpy_s
_tcsncpy_s_l _strncpy_s_l _mbsnbcpy_s_l _wcsncpy_s_l

Anforderungen

Routine Erforderlicher Header
_mbsnbcpy_s <mbstring.h>
_mbsnbcpy_s_l <mbstring.h>

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

Siehe auch

Zeichenfolgenbearbeitung
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_strncnt, , _wcsncnt_mbsnbcnt, _mbsnbcnt_l, , _mbsnccnt_mbsnccnt_l
_mbsnbicmp, _mbsnbicmp_l
_mbsnbset, _mbsnbset_l
strncpy, , _strncpy_lwcsncpy, _wcsncpy_l, , _mbsncpy_mbsncpy_l