_mbsnbcpy_s
, _mbsnbcpy_s_l
Bir dizenin n baytını hedef dizeye kopyalar. 'nin _mbsnbcpy
_mbsnbcpy_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 _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
Parametreler
strDest
Karakter dizesinin kopyalanması için hedef.
sizeInBytes
Hedef arabellek boyutu.
strSource
Kopyalanacak karakter dizesi.
count
Kopyalanacak bayt sayısı.
locale
Kullanılacak yerel ayar.
Dönüş değeri
Başarılı olursa sıfır; EINVAL
hatalı bir parametre geçirildiyse.
Açıklamalar
işlevi baytları _mbsnbcpy_s
count
'den strSource
öğesine strDest
kopyalar. giriş dizelerinden biri null işaretçi veya count
sizeInBytes
0 boyutunu strDest
aşarsacount
, işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisini çağırır. Yürütmenin devam etmesi için izin verilirse işlevi döndürür EINVAL
. Kaynak ve hedef dizeler çakışıyorsa, öğesinin _mbsnbcpy_s
davranışı tanımsız olur.
Çıkış değeri, yerel ayarın LC_CTYPE
kategori ayarının ayarından etkilenir. Daha fazla bilgi için bkz. setlocale
. Bu işlevlerin son eki olmayan _l
sürümleri, bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır; son ekine _l
sahip sürümler, bunun yerine geçirilen yerel ayar parametresini kullanmaları dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.
Not
Bu işlevin güvenli olmayan sürümünden farklı olarak, _mbsnbcpy_s
null doldurma yapmaz ve her zaman null dizeyi sonlandırır.
C++'ta bu işlevlerin kullanılması şablon aşırı yüklemeleriyle basitleştirilir; aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkarabilir (boyut bağımsız değişkeni belirtme gereksinimini ortadan kaldırır) ve eski, güvenli olmayan işlevleri yeni ve güvenli karşılıklarıyla otomatik olarak değiştirebilir. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.
Bu işlevlerin hata ayıklama kitaplığı sürümleri önce arabelleği 0xFE ile doldurur. Bu davranışı devre dışı bırakmak için kullanın _CrtSetDebugFillThreshold
.
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 |
---|---|---|---|
_tcsncpy_s |
_strncpy_s |
_mbsnbcpy_s |
_wcsncpy_s |
_tcsncpy_s_l |
_strncpy_s_l |
_mbsnbcpy_s_l |
_wcsncpy_s_l |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_mbsnbcpy_s |
<mbstring.h> |
_mbsnbcpy_s_l |
<mbstring.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Ayrıca bkz.
Dize işleme
_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