Freigeben über


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

Wichtiger HinweisWichtig

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.

Siehe auch

Referenz

Gebietsschema

Interpretation von Mehrbytezeichen-Sequenzen

_mbclen, mblen, _mblen_l