Udostępnij za pośrednictwem


_mbsnbcpy_s, _mbsnbcpy_s_l

Kopiuje n bajty ciągu do ciągu docelowego.Te wersje _mbsnbcpy, _mbsnbcpy_l mają wzmocnienia zabezpieczeń, jak opisano w Funkcje zabezpieczeń w CRT.

Ważna uwagaWażne

Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsł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, które mają być kopiowane.

  • sizeInBytes
    Rozmiar buforu miejsca docelowego.

  • strSource
    Ciąg znaków do skopiowania.

  • count
    Liczba bajtów, które mają być kopiowane.

  • locale
    Ustawienia regionalne do użycia.

Wartość zwracana

0, Jeśli kończy się pomyślnie; EINVAL jeśli przekazano zły parametr.

Uwagi

_mbsnbcpy_s funkcja kopiuje count bajty z strSource do strDest.Jeśli count przekracza rozmiar strDest, każdy z ciągów wejściowych jest wskaźnikiem typu null lub sizeInBytes, lub count wynosi 0, funkcja wywołuje procedurę obsługi nieprawidłowego parametru, zgodnie z opisem w Sprawdzanie poprawności parametru .Jeśli wykonanie może być kontynuowane, funkcja zwraca EINVAL.Jeżeli ciągi źródłowe i docelowe nakładają się, zachowanie _mbsnbcpy_s jest niezdefiniowane.

Wartość wyjściowa jest zależna od konfiguracji ustawień kategorii LC_CTYPE ustawień regionalnych; zobacz setlocale, aby uzyskać więcej informacji.Wersje tych funkcji, które nie mają przyrostka _l używają bieżących ustawień regionalnych dla wszelkich zachowań zależnych od ustawień lokalnych; wersje, które mają przyrostek _l są identyczne, z tą różnicą, że w zamian korzystają z przekazanego parametru ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Regionalne.

[!UWAGA]

W odróżnieniu od niezabezpieczonej wersji tej funkcji _mbsnbcpy_s nie wykonuje żadnego dopełnienia zerowego i zawsze wartość null kończy ciąg.

W języku programowania C++ korzystanie z tych funkcji jest uproszczone przez przeciążania szablonu; przeciążania mogą automatycznie wywnioskować długość buforu (tak, aby nie było konieczne określenie argumentu rozmiaru), ponadto te funkcje mogą automatycznie zastąpić starsze, niezabezpieczone funkcje nowszymi, bardziej bezpiecznymi odpowiednikami.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.

Wersje debugowania tych funkcji najpierw wypełniają bufor 0xFD.Aby wyłączyć to zachowanie, użyj _CrtSetDebugFillThreshold.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tcsncpy_s

_strncpy_s

_mbsnbcpy_s

_wcsncpy_s

_tcsncpy_s_l

_strncpy_s_l

_mbsnbcpy_s_l

_wcsncpy_s_l

Wymagania

Procedura

Wymagany nagłówek

_mbsnbcpy_s

<mbCiąg.h>

_mbsnbcpy_s_l

<mbCiąg.h>

Aby uzyskać więcej informacji na temat zgodności – zobacz: Zgodność.

Odpowiednik w programie .NET Framework

Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywoływania 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