Aracılığıyla paylaş


_mbccpy_s, _mbccpy_s_l

Bir dizeden başka bir dizeye çok baytlı bir karakter kopyalar. 'nin _mbccpy _mbccpy_lbu sürümleri, CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmelerine sahiptir.

Önemli

Bu API, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.

Sözdizimi

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

Parametreler

dest
Hedefi kopyalayın.

buffSizeInBytes
Hedef arabelleğin boyutu.

pCopied
Kopyalanan bayt sayısıyla doldurulur (başarılı olursa 1 veya 2). Sayı umurunda değilse geç NULL .

src
Kopyalanacak çok baytlı karakter.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Başarılı olursa sıfır; hatayla ilgili bir hata kodu. veya src dest ise NULLveya bayttan buffSizeinBytes fazla kopyalanacaksadest, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, işlevler döndürür EINVALve errno olarak EINVALayarlanır.

Açıklamalar

İşlev, _mbccpy_s bir çok baytlı karakteri 'den src öğesine destkopyalar. src için örtük bir çağrı tarafından belirlenen çok baytlı bir karakterin baş baytını _ismbbleadgöstermiyorsa, işaret eden src tek bayt kopyalanır. Bir müşteri adayı baytını işaret edersesrc, ancak aşağıdaki bayt 0 ise ve bu nedenle geçersizse, 0 öğesine kopyalanırdesterrno, olarak EILSEQayarlanır ve işlev döndürürEILSEQ.

_mbccpy_s null sonlandırıcı eklemez; ancak, bir null karaktere işaret ederse src , bu null öğesine kopyalanır dest (normal bir tek bayt kopya olarak).

içindeki pCopied değeri kopyalanan bayt sayısıyla doldurulur. İşlem başarılı olursa olası değerler 1 ve 2'dir. geçirilirse NULL , bu parametre yoksayılır.

src kopyalanan dest pCopied Dönüş değeri
müşteri adayı olmayan bayt müşteri adayı olmayan bayt 1 0
0 0 1 0
kurşun bayt ve ardından 0 olmayan kurşun bayt ve ardından 0 olmayan 2 0
kurşun bayt ve ardından 0 0 1 EILSEQ

İkinci satır yalnızca ilk satırın özel bir durumudur. Tabloda = varsayılırbuffSizeInBytes>. pCopied

_mbccpy_s , yerel ayara bağımlı herhangi bir davranış için geçerli yerel ayarı kullanır. _mbccpy_s_l , yerel ayara _mbccpy_s bağımlı herhangi bir davranış için geçirilen yerel ayarın kullanıldığı durumlar dışında _mbccpy_s_l aynıdır.

C++'ta bu işlevlerin kullanılması şablon aşırı yüklemeleriyle basitleştirilir; aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkararak boyut bağımsız değişkeni belirtme gereksinimini ortadan kaldırır. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Genel metin yordamı eşlemeleri

Tchar.h yordamı _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tccpy_s Makro veya satır içi işlevle eşler. _mbccpy_s Makro veya satır içi işlevle eşler.

Gereksinimler

Yordam Gerekli başlık
_mbccpy_s <mbstring.h>
_mbccpy_s_l <mbstring.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Ayrıca bkz.

Yerel ayar
Çok baytlı karakter dizilerinin yorumlanması
_mbclen, mblen, _mblen_l