_mbccpy_s, _mbccpy_s_l
Kopiert ein einzelnes Mehrbytezeichen aus einer Zeichenfolge mit einer anderen Zeichenfolge.Diese sind Versionen von _mbccpy, _mbccpy_l mit Sicherheitserweiterungen, wie in Sicherheitsfeatures im CRT beschrieben.
Wichtig |
---|
Diese API kann nicht in den Anwendungen verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW. |
errno_t _mbccpy_s( unsigned char *dest, size_t buffSizeInBytes, int * pCopied, const unsigned char *src ); errno_t _mbccpy_s_l( unsigned char *dest, size_t buffSizeInBytes, int * pCopied, const unsigned char *src, locale_t locale ); template <size_t size> errno_t _mbccpy_s( unsigned char (&dest)[size], int * pCopied, const unsigned char *src ); // C++ only template <size_t size> errno_t _mbccpy_s_l( unsigned char (&dest)[size], int * pCopied, const unsigned char *src, locale_t locale ); // C++ only
Parameter
[out] dest
Kopieren Sie Ziel.[in] buffSizeInBytes
Größe des Zielpuffers.[out] pCopied
Wird mit der Anzahl von Bytes kopiert (1 oder 2, wenn erfolgreich).Führen Sie NULL, wenn Sie nicht für die Zahl interessieren.[in] src
So kopieren Mehrbytezeichen.[in] locale
Zu verwendende Gebietsschema.
Rückgabewert
Null erfolgreich, wenn ein Fehlercode auf Fehler.Wenn src oder destNULL ist oder wenn mehrere buffSizeinBytes Bytes zu dest kopiert werden, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, geben die Funktionen EINVAL zurück, und errno wird auf EINVAL festgelegt.
Hinweise
Die _mbccpy_s-Funktion kopiert ein Mehrbytezeichen von src zu dest.Wenn src nicht zum führendes Byte eines Mehrbytezeichens zeigt, wie durch einen impliziten Aufruf _ismbblead bestimmt, dann das einzelne Byte, dass src Punkte zu kopiert wird.Wenn src auf ein führendes Byte zeigt, aber der nächste Byte 0 und somit ungültig ist, wird 0 zu dest kopiert, wird errno zu EILSEQ und - Funktion EILSEQ festgelegt.
_mbccpy_s wird kein abschließendes an; Wenn jedoch src zu einem NULL-Zeichen zeigt, dann diese NULL wird auf dest kopiert (dies ist eine reguläre Einzelbytekopie).
Der Wert in pCopied wird mit der Anzahl von Bytes kopiert gefüllt.Mögliche Werte sind 1 und 2, wenn der Vorgang erfolgreich war.Wenn NULL übergeben wird, wird dieser Parameter ignoriert.
src |
kopiert dest |
pCopied |
Rückgabewert |
---|---|---|---|
Nicht-FührungByte |
Nicht-FührungByte |
1 |
0 |
0 |
0 |
1 |
0 |
führendes Byte gefolgt von non-0 |
führendes Byte gefolgt von non-0 |
2 |
0 |
führendes Byte gefolgt von 0 |
0 |
1 |
EILSEQ |
Beachten Sie, dass die zweite Zeile gerade ein Sonderfall des ersten ist.Beachten Sie außerdem, dass die Tabelle buffSizeInBytes >= pCopied angenommen hat.
_mbccpy_s verwendet das aktuelle Gebietsschema für jedes gebietsschemaabhängigen Verhalten._mbccpy_s_l ist zu _mbccpy_s identisch, außer dass _mbccpy_s_l verwendet, die das Gebietsschema in für jedes gebietsschemaabhängigen Verhalten übergeben.
In C++ mithilfe dieser Funktionen wird durch Vorlagenüberladungen vereinfacht; die Überladungen können Pufferlänge automatisch ableiten und die Anforderung vermeiden, ein Größenargument anzugeben.Weitere Informationen finden Sie unter Speichern Sie Vorlagen-Überladungen.
Zuordnung generische Textroutinen
Tchar.h-Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tccpy_s |
Zuordnungen zum Makro oder die Inlinefunktion. |
_mbccpy_s |
Zuordnungen zum Makro oder die Inlinefunktion. |
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_mbccpy_s |
<mbstring.h> |
_mbccpy_s_l |
<mbstring.h> |
Weitere Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.