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