_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 strDest
der 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 _CrtSetDebugFillThreshold
zum 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_l
wcsncpy
, _wcsncpy_l
, , _mbsncpy
_mbsncpy_l