_mbsnbcpy_s
, _mbsnbcpy_s_l
Zkopíruje n bajtů řetězce do cílového řetězce. Tyto verze _mbsnbcpy
mají _mbsnbcpy_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 _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 zkopírování řetězce znaků.
sizeInBytes
Velikost cílové vyrovnávací paměti.
strSource
Řetězec znaků, který se má zkopírovat.
count
Počet bajtů, které se mají zkopírovat
locale
Národní prostředí, které se má použít.
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
bajty z strSource
do strDest
. Pokud count
překročí velikost , jeden ze vstupních strDest
řetězců je null ukazatel nebo sizeInBytes
je count
0, funkce vyvolá neplatnou obslužnou rutinu parametru, jak je popsáno v ověření parametru . Pokud je spuštění povoleno pokračovat, vrátí EINVAL
funkce . Pokud se zdrojové a cílové řetězce překrývají, chování _mbsnbcpy_s
není definováno.
Výstupní hodnota je ovlivněna nastavením LC_CTYPE
nastavení kategorie národního prostředí. Další informace najdete na webu setlocale
. Verze těchto funkcí bez _l
přípony používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s _l
příponou jsou shodné s tím rozdílem, že místo toho 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čované verze této funkce _mbsnbcpy_s
neprovádí žádné odsazení null a vždy null ukončuje řetězec.
V jazyce C++ je použití těchto funkcí zjednodušeno přetíženími šablon; přetížení mohou automaticky odvodit délku vyrovnávací paměti (eliminuje potřebu zadat argument velikosti) a mohou automaticky nahradit starší, nezabezpečené funkce jejich novějšími zabezpečenými protějšky. Další informace naleznete v tématu Přetížení šablon zabezpečení.
Verze knihovny ladění těchto funkcí nejprve vyplní vyrovnávací paměť 0xFE. Chcete-li toto chování zakázat, použijte _CrtSetDebugFillThreshold
.
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ý |
---|---|---|---|
_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ý hlavičkový soubor |
---|---|
_mbsnbcpy_s |
<mbstring.h> |
_mbsnbcpy_s_l |
<mbstring.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Viz také
Manipulace s řetězci
_mbsnbcat
, _mbsnbcat_l
_mbsnbcmp
, _mbsnbcmp_l
_strncnt
, _wcsncnt
, _mbsnbcnt
, _mbsnbcnt_l
, , _mbsnccnt
_mbsnccnt_l
_mbsnbicmp
, _mbsnbicmp_l
_mbsnbset
, _mbsnbset_l
strncpy
, _strncpy_l
, wcsncpy
, _wcsncpy_l
, , _mbsncpy
_mbsncpy_l