_mbsnbcpy_s, _mbsnbcpy_s_l

Kopiuje n bajtów ciągu do ciągu docelowego. Te wersje programu _mbsnbcpy_mbsnbcpy_lmają ulepszenia zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.

Ważne

Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.

Składnia

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 do skopiowania.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

Zero w przypadku powodzenia; EINVAL jeśli przekazano nieprawidłowy parametr.

Uwagi

Funkcja _mbsnbcpy_s kopiuje bajty count z strSource do strDest. Jeśli count przekracza rozmiar strDest, jeden z ciągów wejściowych jest wskaźnikiem o wartości null lub countsizeInBytes jest 0, funkcja wywołuje nieprawidłową procedurę obsługi parametrów zgodnie z opisem w temacie Walidacja parametru . Jeśli wykonywanie jest dozwolone do kontynuowania, funkcja zwraca wartość EINVAL. Jeśli ciągi źródłowe i docelowe nakładają się na siebie, zachowanie elementu _mbsnbcpy_s jest niezdefiniowane.

Na wartość wyjściową ma wpływ ustawienie LC_CTYPE ustawienia kategorii ustawień regionalnych. W celu uzyskania więcej informacji, zobacz następujący temat: setlocale. Wersje tych funkcji bez sufiksu _l używają bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Wersje z _l sufiksem są identyczne, z tą różnicą, że używają parametru ustawień regionalnych przekazanych zamiast. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Uwaga

W przeciwieństwie do niezabezpieczonej wersji tej funkcji, _mbsnbcpy_s nie wykonuje żadnych dopełnienia o wartości null i zawsze powoduje zakończenie ciągu o wartości null.

W języku C++używanie tych funkcji jest uproszczone przez przeciążenia szablonu; przeciążenia mogą automatycznie wnioskować długość buforu (eliminując konieczność określenia argumentu rozmiaru) i mogą automatycznie zastępować starsze, niezabezpieczone funkcje nowszymi, bezpiecznymi odpowiednikami. Aby uzyskać więcej informacji, zobacz Bezpieczne przeciążenia szablonów.

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

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura tchar.h _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_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 <mbstring.h>
_mbsnbcpy_s_l <mbstring.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Zobacz też

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