Sdílet prostřednictvím


_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á poznámkaDů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

Zacházení s řetězci (CRT)

_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