Sdílet prostřednictvím


_mbsnbcpy_s, _mbsnbcpy_s_l

Zkopíruje n bajtů řetězce do cílového řetězce. Tyto verze _mbsnbcpymají _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í EINVALfunkce . 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 Definovány _UNICODE Definovány
_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