Sdílet prostřednictvím


_mbccpy_s _mbccpy_s_l

Zkopíruje jeden vícebajtové znakové z jednoho řetězce s jiným řetězcem.Jedná se o verze _mbccpy _mbccpy_l s vylepšení zabezpečení, jak je popsáno v Funkce zabezpečení v CRT.

Důležitá poznámkaDůležité

Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v systému Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /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

Parametry

  • [výstup]dest
    Cíl kopírování.

  • [v]buffSizeInBytes
    Velikost cílové vyrovnávací paměti.

  • [výstup]pCopied
    Vyplní počet bajtů zkopírovaných (1 nebo 2 v případě úspěchu).Předat NULL v případě, že není důležité o číslo.

  • [v]src
    Vícebajtové znaky ke zkopírování.

  • [v]locale
    Chcete-li národní prostředí pro použití.

Vrácená hodnota

Nula v případě úspěchu; kód chyby při selhání.Pokud src nebo dest je NULL, nebo pokud více než buffSizeinBytes bajtů by zkopírovány do dest, pak je vyvolána obslužná rutina neplatný parametr, jak je popsáno v Ověření parametrů.Pokud je povoleno zpracování, chcete-li pokračovat, vrátí funkce EINVAL a errno je nastavena na EINVAL.

Poznámky

_mbccpy_s Funkce kopíruje jeden vícebajtové znaky z src na dest.Pokud src neodkazuje na vedoucí bajt vícebajtové znakové podle implicitní volání na _ismbblead, pak jeden bajt, src odkazuje na zkopírován.Pokud src odkazuje na úvodní bajt, ale následující bajt je 0 a tedy za neplatnou a 0 je zkopírován do dest, errno je nastavena na EILSEQ, a vrátí funkce EILSEQ.

_mbccpy_snemá připojit null zakončení; Nicméně pokud src odkazuje na prázdný znak, pak tato hodnota null je zkopírován do dest (který je právě pravidelné kopírování jednobajtové).

Hodnota v pCopied je vyplněn počet bajtů zkopírovaných.Možné hodnoty jsou 1 a 2, pokud je operace úspěšná.Pokud NULL je předána, je tento parametr ignorován.

src

zkopírovat dodest

pCopied

Vrácená hodnota

vedoucí bajt

vedoucí bajt

1

0

0

0

1

0

vedoucí bajt, následovaný non-0

vedoucí bajt, následovaný non-0

2

0

vedoucí bajt, následované 0

0

1

EILSEQ

Všimněte si, že druhý řádek pouze zvláštní případ první.Všimněte si také, předpokládá tabulka buffSizeInBytes > = pCopied.

_mbccpy_spoužívá aktuální národní prostředí pro všechny závislé chování._mbccpy_s_lje totožný s _mbccpy_s s tím rozdílem, že _mbccpy_s_l používá národní prostředí předána pro jakékoli závislé chování.

V jazyce C++ pomocí těchto funkcí je zjednodušeno díky přetížení šablony; přetížení můžete odvodit vyrovnávací paměti automaticky, takže není nutné zadat argument velikost.Další informace naleznete v tématu Přetížení šablony zabezpečení.

Mapování rutiny obecného textu

Byla zahájena rutina Tchar.h

_UNICODE a _MBCS není definováno

_MBCS, definice

_UNICODE definována

_tccpy_s

Mapy do makra nebo vložené funkce.

_mbccpy_s

Mapy do makra nebo vložené funkce.

Požadavky

Byla zahájena rutina

Požadované záhlaví

_mbccpy_s

<mbstring.h>

_mbccpy_s_l

<mbstring.h>

Další informace o kompatibilitě v tématu Compatibility v úvodu.

Viz také

Referenční dokumentace

Národní prostředí

Výklad vícebajtové znakové sekvence

_mbclen, mblen, _mblen_l