_mbccpy_s, _mbccpy_s_l
Kopiuje jeden znak wielobajtowych z jednego ciągu do innego ciągu.Są to wersje _mbccpy, _mbccpy_l z ulepszeń zabezpieczeń, zgodnie z opisem w Funkcje zabezpieczeń w CRT.
![]() |
---|
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 _mbccpy_s(
unsigned char *dest,
size_t buffSizeInBytes,
int * pCopied,
const unsigned char *src
);
errno_t _mbccpy_s_l(
unsigned char *dest,
size_t buffSizeInBytes,
int * pCopied,
const unsigned char *src,
locale_t locale
);
template <size_t size>
errno_t _mbccpy_s(
unsigned char (&dest)[size],
int * pCopied,
const unsigned char *src
); // C++ only
template <size_t size>
errno_t _mbccpy_s_l(
unsigned char (&dest)[size],
int * pCopied,
const unsigned char *src,
locale_t locale
); // C++ only
Parametry
[Brak]dest
Miejsce docelowe kopii.[in]buffSizeInBytes
Rozmiar buforu docelowego.[Brak]pCopied
Wypełnione, o liczbie bajtów skopiowanych (1 lub 2 w przypadku powodzenia).Przekazać NULL Jeśli nie dbasz o numer.[in]src
Znaków wielobajtowych do skopiowania.[in]locale
Ustawienia regionalne używane.
Wartość zwracana
Zero, jeśli kończy się pomyślnie; Kod błędu w przypadku awarii.Jeśli src lub dest jest NULL, lub jeśli więcej niż buffSizeinBytes bajty mają być skopiowane do dest, a następnie program obsługi nieprawidłowy parametr jest wywoływana, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje zwracają wartość EINVAL i errno jest ustawiona na EINVAL.
Uwagi
_mbccpy_s Funkcja kopiuje wielobajtowe jednego znaku z src do dest.Jeśli src nie wskazuje bajtów początkowych znaków wielobajtowych, określanych przez wywołanie niejawna _ismbblead, następnie jeden bajt, src punkty do jest kopiowany.Jeśli src punkty do wiodącego bajtu, ale to następny bajt jest 0, a więc nieważny, a następnie 0 jest kopiowany do dest, errno jest ustawiona na EILSEQ, a funkcja zwróci EILSEQ.
_mbccpy_snie dołączyć znakiem null; Jednakże jeśli src wskazuje znak null, a następnie, że wartość null jest kopiowany do dest (jest to tylko regularnych kopia jednobajtowe).
Wartość w pCopied jest wypełniona liczbie bajtów skopiowanych.Możliwe wartości to 1 i 2, jeśli operacja się powiedzie.Jeśli NULL jest przekazywana, ten parametr jest ignorowany.
src |
skopiowane dodest |
pCopied |
Zwracana wartość |
---|---|---|---|
bajt potencjalnego klienta |
bajt potencjalnego klienta |
1 |
0 |
0 |
0 |
1 |
0 |
bajt wiodący następuje różny od 0 |
bajt wiodący następuje różny od 0 |
2 |
0 |
bajt wiodący następuje 0 |
0 |
1 |
EILSEQ |
Należy zauważyć, że drugi wiersz jest szczególnym przypadkiem pierwszy.Ponadto należy zauważyć, że tabeli przyjęto, że buffSizeInBytes > = pCopied.
_mbccpy_sużywa bieżących ustawień regionalnych dla wszelkich zachowań zależne od ustawień lokalnych._mbccpy_s_ljest identyczny z _mbccpy_s z tym, że _mbccpy_s_l korzysta z ustawień regionalnych dopuszczenia każde zachowanie zależne od ustawień lokalnych.
W języku C++ korzystając z tych funkcji jest uproszczony przez przeciążenia szablonu; overloads można wywnioskować, długość buforu automatycznie, eliminując konieczność, aby określić argument rozmiar.Aby uzyskać więcej informacji, zobacz Secure, szablon Overloads.
Tekst rodzajowy rutynowych mapowania
Rozpoczęto wykonywanie procedury TCHAR.h |
_UNICODE i _MBCS nie zdefiniowany |
_MBCS, definicja |
_UNICODE, definicja |
---|---|---|---|
_tccpy_s |
Mapy i makro lub wewnętrznej funkcji. |
_mbccpy_s |
Mapy i makro lub wewnętrznej funkcji. |
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_mbccpy_s |
<mbstring.h> |
_mbccpy_s_l |
<mbstring.h> |
Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.