_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ż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
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l