_mbccpy_s
, _mbccpy_s_l
Bir dizeden başka bir dizeye çok baytlı bir karakter kopyalar. 'nin _mbccpy
_mbccpy_l
bu 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 NULL
veya 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 EINVAL
ve errno
olarak EINVAL
ayarlanır.
Açıklamalar
İşlev, _mbccpy_s
bir çok baytlı karakteri 'den src
öğesine dest
kopyalar. src
için örtük bir çağrı tarafından belirlenen çok baytlı bir karakterin baş baytını _ismbblead
gö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ırdest
errno
, olarak EILSEQ
ayarlanı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