Sdílet prostřednictvím


_mbsnbcpy_s _mbsnbcpy_s_l

Kopie n bajtů řetězce pro cílový řetězec.Jedná se o verze _mbsnbcpy _mbsnbcpy_l s vylepšení zabezpečení, jak je popsáno v Funkce zabezpečení v CRT.

Důležitá poznámkaDůležité

Toto rozhraní API nelze použít v aplikacích, které jsou spuštěny v systému 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é mají být zkopírovány.

  • sizeInBytes
    Velikost cílové vyrovnávací paměti.

  • strSource
    Znakový řetězec, který chcete zkopírovat.

  • count
    Počet bajtů, které mají být zkopírovány.

  • locale
    Chcete-li národní prostředí pro použití.

Vrácená hodnota

Nula v případě úspěchu; EINVALPokud byl předán chybný parametr.

Poznámky

The _mbsnbcpy_s function copies count bytes from strSource to strDest.Pokud count přesahuje velikost strDest, buď vstupní řetězce je ukazatel s hodnotou null, nebo sizeInBytes nebo count je 0, funkce vyvolá obslužnou rutinu neplatný parametr, jak je popsáno v Ověření parametrů .Pokud je povoleno zpracování, chcete-li pokračovat, vrátí funkce EINVAL.Pokud zdrojový a cílový řetězce překrývají, chování _mbsnbcpy_s není definován.

Výstupní hodnota je ovlivněna nastavením LC_CTYPE kategorie nastavení národního prostředí; Viz setlocale pro další informace.Verze těchto funkcí, aniž by _l příponu použít aktuální národní prostředí pro toto chování závislé na národním prostředí; verze s _l s tím rozdílem, že používají místo něho předán parametr locale shodná přípona.Další informace naleznete v tématu Národní prostředí.

[!POZNÁMKA]

Na rozdíl od nezabezpečenou verzí této funkce _mbsnbcpy_s nelze provést čalounění null a vždy hodnotu null ukončení řetězce.

V jazyce C++ pomocí těchto funkcí je zjednodušeno díky přetížení šablony; přetížení můžete automaticky odvodit velikost vyrovnávací paměti (není tedy třeba zadat argument velikost) a starší, nezabezpečené funkce lze automaticky nahradí s jejich protějšky novější, bezpečné.Další informace naleznete v tématu Přetížení šablony zabezpečení.

Ladicí verze těchto funkcí vyplnit nejprve vyrovnávací paměť s 0xFD.Chcete-li zakázat toto chování, použijte _CrtSetDebugFillThreshold.

Mapování rutiny obecného textu

Byla zahájena rutina Tchar.h

_UNICODE a _MBCS není definováno

_MBCS, definice

_UNICODE definována

_tcsncpy_s

_strncpy_s

_mbsnbcpy_s

_wcsncpy_s

_tcsncpy_s_l

_strncpy_s_l

_mbsnbcpy_s_l

_wcsncpy_s_l

Požadavky

Byla zahájena rutina

Požadované záhlaví

_mbsnbcpy_s

<mbstring.h>

_mbsnbcpy_s_l

<mbstring.h>

Další informace o kompatibilitě v tématu Compatibility v úvodu.

Ekvivalent v rozhraní .NET Framework

Nelze použít Volání funkce standardním C pomocí PInvoke. Další informace naleznete v tématu Platformu vyvolání příklady.

Viz také

Referenční dokumentace

Manipulaci 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