Sdílet prostřednictvím


_mbccpy_s, _mbccpy_s_l

Zkopíruje jeden vícebajtový znak z řetězce do jiného řetězce.Tyto verze _mbccpy, _mbccpy_l mají rozšíření zabezpečení popsaná v tématu Funkce zabezpečení v CRT.

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

Toto API nelze použít v aplikacích, které jsou spuštěny v modulu 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

  • [out] dest
    Cíl kopírování.

  • [in] buffSizeInBytes
    Velikost vyrovnávací paměti pro cílové umístění.

  • [out] pCopied
    Vyplněno počtem zkopírovaných bajtů (1 nebo 2, v případě úspěchu).Předejte NULL, pokud vám na čísle nezáleží.

  • [in] src
    Vícebajtový znak pro kopírování.

  • [in] locale
    Použité národní prostředí.

Vrácená hodnota

Nula v případě úspěchu, při selhání kód chyby.Pokud src nebo dest je NULL, nebo pokud více než buffSizeinBytes bajtů má být zkopírováno do dest, pak je vyvolána obslužná rutina neplatného parametru, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, vrátí funkce EINVAL a nastaví errno na EINVAL.

Poznámky

Funkce _mbccpy_s kopíruje jeden vícebajtový znak src do dest.Pokud src neodkazuje na úvodní bajt vícebajtového znaku, jak je určeno implicitním voláním _ismbblead, jeden bajt, na který ukazuje src, je zkopírován.Pokud src ukazuje na vedoucí bajt, ale následující bajt je 0 a tedy neplatný, pak 0 je zkopírována do dest, errno je nastavena na EILSEQ, a funkce vrátí EILSEQ.

_mbccpy_s nepřipojí znak zakončení null; nicméně pokud src odkazuje na prázdný znak, pak tato hodnota null je zkopírována do dest (to je běžná jednobajtová kopie).

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

src

zkopírováno do dest

pCopied

Návratová hodnota

nevedoucí bajt

nevedoucí bajt

1

0

0

0

1

0

vedoucí znak následovaný jiným znakem než 0

vedoucí znak následovaný jiným znakem než 0

2

0

vedoucí znak následovaný 0

0

1

EILSEQ

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

_mbccpy_s používá aktuální národní prostředí pro všechna závislá chování._mbccpy_s_l je identická s _mbccpy_s s tím rozdílem, že _mbccpy_s_l používá národní prostředí předané pro všechna závislá chování.

V jazyce C++ je použití těchto funkcí zjednodušeno díky přetížením šablony; přetížení mohou odvodit délku vyrovnávací paměti automaticky, čímž eliminují nutnost určit velikost argumentu.Další informace naleznete v tématu Přetížení zabezpečení šablony.

Rutinní mapování obecného textu

Rutina Tchar.h

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_tccpy_s

Mapuje se na makro nebo vloženou funkci.

_mbccpy_s

Mapuje se na makro nebo vloženou funkci.

Požadavky

Rutina

Požadované záhlaví

_mbccpy_s

<mbstring.h>

_mbccpy_s_l

<mbstring.h>

Další informace o kompatibilitě naleznete v tématu Kompatibilita.

Viz také

Referenční dokumentace

Národní prostředí

Výklad sekvencí vícebajtových znaků

_mbclen, mblen, _mblen_l