Udostępnij za pośrednictwem


_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.

Ważna uwagaWażne

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.

Zobacz też

Informacje

Ustawienia regionalne

Interpretacja sekwencje znaków wielobajtowych

_mbclen, mblen, _mblen_l