Udostępnij za pośrednictwem


_mbsnbcpy_s, _mbsnbcpy_s_l

Kopie n bajtów w ciągu na ciąg docelowego.Są to wersje _mbsnbcpy, _mbsnbcpy_l z ulepszeń zabezpieczeń, zgodnie z opisem w Funkcje zabezpieczeń w CRT.

Ważna uwagaWażne

Ten interfejs API nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /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
    Miejsce docelowe dla ciągu znaków do skopiowania.

  • sizeInBytes
    Rozmiar buforu docelowego.

  • strSource
    Ciąg znaków do skopiowania.

  • count
    Liczba bajtów przeznaczonych do skopiowania.

  • locale
    Ustawienia regionalne używane.

Wartość zwracana

Zero, jeśli kończy się pomyślnie; EINVALJeśli przekazano zły parametr.

Uwagi

The _mbsnbcpy_s function copies count bytes from strSource to strDest.Jeśli count przekracza rozmiar strDest, albo ciągów wejściowych jest pusty wskaźnik, lub sizeInBytes lub count ma wartość 0, funkcja wywołuje program obsługi nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru .Jeśli wykonanie może w dalszym ciągu, funkcja zwraca EINVAL.Jeśli ciągi źródłowe i docelowe nakładają, zachowanie _mbsnbcpy_s jest niezdefiniowane.

Wartość produkcji jest zależny od ustawienia z LC_CTYPE kategorii ustawienie regionalne tzn. zobacz setlocale Aby uzyskać więcej informacji.Wersje te funkcje, bez _l sufiks Użyj bieżących ustawień regionalnych tego zachowania zależne od ustawień lokalnych; wersje z _l sufiks są identyczne z tym, że używają zamiast przekazany parametr ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

[!UWAGA]

W odróżnieniu od niezabezpieczonego wersja tej funkcji _mbsnbcpy_s nie rób bajtami dopełniającymi null i null zawsze kończy ciąg.

W języku C++ korzystając z tych funkcji jest uproszczony przez przeciążenia szablonu; przeciążenia mogą wywnioskować długość buforu automatycznie (eliminując konieczność, aby określić argument rozmiar) i starszych, które nie są bezpieczne funkcje mogą automatycznie zastąpić z ich odpowiednikami nowsze, bezpieczne.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.

Wersje do debugowania tych funkcji najpierw wypełnić bufor z 0xFD.Aby wyłączyć to zachowanie, należy użyć _CrtSetDebugFillThreshold.

Tekst rodzajowy rutynowych mapowania

Rozpoczęto wykonywanie procedury TCHAR.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_tcsncpy_s

_strncpy_s

_mbsnbcpy_s

_wcsncpy_s

_tcsncpy_s_l

_strncpy_s_l

_mbsnbcpy_s_l

_wcsncpy_s_l

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_mbsnbcpy_s

<mbstring.h>

_mbsnbcpy_s_l

<mbstring.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywoływać funkcji C standardowej, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Zobacz też

Informacje

Manipulowanie ciągami (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