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 _mbccpymají _mbccpy_l vylepšení zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.

Důležité

Toto rozhraní API nelze použít v aplikacích, které se spouští v prostředí Windows Runtime. Další informace najdete v tématu Funkce CRT, které nejsou v aplikacích Univerzální platforma Windows podporované.

Syntaxe

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

dest
Zkopírujte cíl.

buffSizeInBytes
Velikost cílové vyrovnávací paměti.

pCopied
Vyplní se počtem bajtů zkopírovaných (1 nebo 2 v případě úspěchu). Pokud vás číslo nezajímá, předejte NULL ho.

src
Vícebajtový znak ke zkopírování.

locale
Národní prostředí, které se má použít.

Vrácená hodnota

Nula v případě úspěchu; kód chyby při selhání. Pokud src nebo je NULL, nebo dest pokud by bylo zkopírováno destvíce než buffSizeinBytes bajty , je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je povoleno pokračovat provádění, funkce vrátí EINVALa errno je nastavena na EINVAL.

Poznámky

Funkce _mbccpy_s zkopíruje jeden vícebajtový znak z src do dest. Pokud src neodkazuje na hlavní bajt vícebajtového znaku určeného implicitním voláním _ismbblead, pak se zkopíruje jeden bajt, na který src odkazuje. Pokud src odkazuje na hlavní bajt, ale následující bajt je 0, a proto je neplatný, pak se 0 zkopíruje do dest, errno je nastaven na EILSEQa funkce vrátí EILSEQ.

_mbccpy_s nepřidá ukončovací znak null; Pokud src však odkazuje na znak null, pak se tato hodnota null zkopíruje dest (jako běžná jednobajtů kopie).

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

src zkopírováno do dest pCopied Vrácená hodnota
bez olovo-bajtu bez olovo-bajtu 0 0
0 0 1 0
bajt lead-byte následovaný ne-0 bajt lead-byte následovaný ne-0 2 0
hlavní bajt následovaný 0 0 1 EILSEQ

Druhý řádek je jen speciální případ prvního řádku. Tabulka předpokládá buffSizeInBytes>= pCopied.

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

V jazyce C++ je použití těchto funkcí zjednodušeno přetíženími šablon; přetížení mohou odvodit délku vyrovnávací paměti automaticky, čímž eliminuje nutnost zadat argument velikosti. Další informace naleznete v tématu Přetížení šablon zabezpečení.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

Rutina Tchar.h _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_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ý hlavičkový soubor
_mbccpy_s <mbstring.h>
_mbccpy_s_l <mbstring.h>

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

Viz také

Národní prostředí
Interpretace vícebajtových sekvencí znaků
_mbclen, , mblen_mblen_l