_mbsnbcpy_s, _mbsnbcpy_s_l
Zkopíruje n bajtů řetězce do cílového řetězce.Tyto verze _mbsnbcpy, _mbsnbcpy_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 _mbsnbcpy_s(
unsigned char * strDest,
size_t sizeInBytes,
const unsigned char * strSource,
size_t count
);
errno_t _mbsnbcpy_s_l(
unsigned char * strDest,
size_t sizeInBytes,
const unsigned char * strSource,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbcpy_s(
unsigned char (&strDest)[size],
const unsigned char * strSource,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcpy_s_l(
unsigned char (&strDest)[size],
const unsigned char * strSource,
size_t count,
_locale_t locale
); // C++ only
Parametry
strDest
Cíl pro řetězec znaků, které chcete zkopírovat.sizeInBytes
Velikost vyrovnávací paměti pro cílové umístění.strSource
Znakový řetězec, který chcete zkopírovat.count
Počet bajtů, které mají být zkopírovány.locale
Použité národní prostředí.
Vrácená hodnota
Nula v případě úspěchu; EINVAL, pokud byl předán chybný parametr.
Poznámky
Funkce _mbsnbcpy_s kopíruje count bajtů z strSource do strDest.Pokud count přesahuje velikost strDest, některý ze vstupních řetězců je ukazatel s hodnotou null, nebo je sizeInBytes nebo count 0, funkce vyvolá obslužnou rutinu neplatného parametru, jak je popsáno v Ověření parametru.Pokud provádění může pokračovat, funkce vrátí EINVAL.Pokud se zdrojový a cílový řetězec překrývají, chování _mbsnbcpy_s není definováno.
Výstupní hodnota je ovlivněna nastavením kategorie LC_CTYPE národního prostředí; viz setlocale pro další informace.Verze těchto funkcí bez přípony _l používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s příponou _l jsou stejné s tím rozdílem, že používají předaný parametr národního prostředí.Další informace naleznete v tématu Národní prostředí.
[!POZNÁMKA]
Na rozdíl od nezabezpečené verze této funkce _mbsnbcpy_s neprovádí padding hodnotou null a vždy ukončí řetězec hodnotou null.
V jazyce C++ je použití těchto funkcí zjednodušeno díky přetížení šablon; přetížení dokáží odvodit velikost vyrovnávací paměti automaticky (tak, že eliminují potřebu zadat argument velikosti) a automaticky nahradit starší, nezabezpečené funkce jejími novějšími, bezpečnějšími protějšky.Další informace naleznete v tématu Přetížení zabezpečení šablony.
Ladicí verze těchto funkcí nejprve naplní vyrovnávací paměť hodnotou 0xFD.Chcete-li zakázat toto chování, použijte _CrtSetDebugFillThreshold.
Rutinní mapování obecného textu
Rutina Tchar.h |
_UNICODE a _MBCS nejsou definovány |
_MBCS definováno |
_UNICODE definováno |
---|---|---|---|
_tcsncpy_s |
_strncpy_s |
_mbsnbcpy_s |
_wcsncpy_s |
_tcsncpy_s_l |
_strncpy_s_l |
_mbsnbcpy_s_l |
_wcsncpy_s_l |
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_mbsnbcpy_s |
<mbstring.h> |
_mbsnbcpy_s_l |
<mbstring.h> |
Další informace o kompatibilitě naleznete v tématu Kompatibilita.
Ekvivalent v rozhraní .NET Framework
Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.
Viz také
Referenční dokumentace
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l