Aracılığıyla paylaş


_mbsnbcat_s, _mbsnbcat_s_l

Çok baytlı bir karakter dizesine, en fazla başka bir çok baytlı karakter dizesinin ilk n baytını ekler. Bu işlevler, CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren sürümleridir_mbsnbcat_l_mbsnbcat.

Ö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 _mbsnbcat_s(
   unsigned char *dest,
   size_t sizeInBytes,
   const unsigned char *src,
   size_t count
);
errno_t _mbsnbcat_s_l(
   unsigned char *dest,
   size_t sizeInBytes,
   const unsigned char *src,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t _mbsnbcat_s(
   unsigned char (&dest)[size],
   const unsigned char *src,
   size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcat_s_l(
   unsigned char (&dest)[size],
   const unsigned char *src,
   size_t count,
   _locale_t locale
); // C++ only

Parametreler

dest
Null olarak sonlandırılan çok baytlı hedef dize.

sizeInBytes
Arabelleğin dest bayt cinsinden boyutu.

src
Null olarak sonlandırılan çok baytlı kaynak dize.

count
sonuna eklenecek destbayt src sayısı.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Başarılı olursa sıfır; aksi takdirde, bir hata kodu.

Hata koşulları

dest sizeInBytes src Dönüş değeri
NULL herhangi bir herhangi bir EINVAL
Herhangi biri <= 0 herhangi bir EINVAL
Herhangi biri herhangi bir NULL EINVAL

Hata koşullarından herhangi biri oluşursa, işlev Parametre doğrulama bölümünde açıklandığı gibi geçersiz bir parametre hatası oluşturur. Hata işlenirse işlev döndürür EINVAL ve olarak EINVALayarlanırerrno.

Açıklamalar

_mbsnbcat_s işlevi, en fazla ilk count bayt olan srcöğesine eklerdest. içindeki dest null karakterin hemen önüne gelen bayt bir kurşun baytsa, ilk bayt tarafından srcüzerine yazılır. Aksi takdirde, ilk bayt değeri src sonlandırıcı null karakterinin destüzerine yazar. Baytlar eklenmeden önce count içinde null bayt görünürsesrc, _mbsnbcat_s içindeki tüm baytları srcnull karaktere ekler. uzunluğundan büyüksecount, uzunluğu src yerine countkullanılır.src Sonuçta elde edilen dize null karakterle sonlandırılır. Kopyalama çakışan dizeler arasında gerçekleşirse, davranış tanımlanmamıştır.

Çı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 sürümleri aynıdır, ancak son ekine sahip _l olmayanlar geçerli yerel ayarı, son ekine sahip _l olanlar ise geçirilen yerel ayar parametresini kullanır. Daha fazla bilgi için bkz . Yerel Ayar.

C++'ta bu işlevlerin kullanımı ş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 ve eski, daha az güvenli işlevleri değiştirmek için daha yeni, daha güvenli işlevleri otomatik olarak kullanabilir. 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 olağan _UNICODE ve _MBCS tanımlanmadı _MBCS tanımlanan _UNICODE tanımlanan
_tcsncat_s strncat_s _mbsnbcat_s wcsncat_s
_tcsncat_s_l _strncat_s_l _mbsnbcat_s_l _wcsncat_s_l

Gereksinimler

Yordam Gerekli başlık
_mbsnbcat_s <mbstring.h>
_mbsnbcat_s_l <mbstring.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Ayrıca bkz.

Dize işleme
_mbsnbcmp, _mbsnbcmp_l
_strncnt, _wcsncnt, _mbsnbcnt, , _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
_mbsnbcpy, _mbsnbcpy_l
_mbsnbcpy_s, _mbsnbcpy_s_l
_mbsnbset, _mbsnbset_l
strncat, _strncat_l, wcsncat, , _wcsncat_l, _mbsncat, _mbsncat_l
strncat_s, _strncat_s_l, wcsncat_s, , _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l