_mbsnbcpy_s
, _mbsnbcpy_s_l
Kopiuje n bajtów ciągu do ciągu docelowego. Te wersje programu _mbsnbcpy
_mbsnbcpy_l
mają 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 count
sizeInBytes
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. Aby uzyskać więcej informacji, zobacz 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 zdefiniowany |
_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 |
<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