Aracılığıyla paylaş


strcat_s, wcscat_s, _mbscat_s, _mbscat_s_l

Bir dize ekler. bu , _mbscatwcscatsürümlerininstrcat, CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri vardır.

Önemli

_mbscat_sve _mbscat_s_l 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 strcat_s(
   char *strDestination,
   size_t numberOfElements,
   const char *strSource
);
errno_t wcscat_s(
   wchar_t *strDestination,
   size_t numberOfElements,
   const wchar_t *strSource
);
errno_t _mbscat_s(
   unsigned char *strDestination,
   size_t numberOfElements,
   const unsigned char *strSource
);
errno_t _mbscat_s_l(
   unsigned char *strDestination,
   size_t numberOfElements,
   const unsigned char *strSource,
   _locale_t locale
);
template <size_t size>
errno_t strcat_s(
   char (&strDestination)[size],
   const char *strSource
); // C++ only
template <size_t size>
errno_t wcscat_s(
   wchar_t (&strDestination)[size],
   const wchar_t *strSource
); // C++ only
template <size_t size>
errno_t _mbscat_s(
   unsigned char (&strDestination)[size],
   const unsigned char *strSource
); // C++ only
template <size_t size>
errno_t _mbscat_s_l(
   unsigned char (&strDestination)[size],
   const unsigned char *strSource,
   _locale_t locale
); // C++ only

Parametreler

strDestination
Null olarak sonlandırılan hedef dize arabelleği.

numberOfElements
Hedef dize arabelleğinin boyutu.

strSource
Null olarak sonlandırılan kaynak dize arabelleği.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Başarılı olursa sıfır; hatayla ilgili bir hata kodu.

Hata koşulları

strDestination numberOfElements strSource Dönüş değeri İçeriği strDestination
NULL veya sonlandırılmamış herhangi bir herhangi bir EINVAL değiştirilmedi
herhangi bir herhangi bir NULL EINVAL strDestination[0] 0 olarak ayarlayın
herhangi bir 0 veya çok küçük herhangi bir ERANGE strDestination[0] 0 olarak ayarlayın

Açıklamalar

İşlev sonuna strcat_s eklenir strSourcestrDestination ve sonuçta elde edilen dizeyi null karakterle sonlandırır. öğesinin strSource ilk karakteri, öğesinin sonlandırıcı null karakterinin strDestinationüzerine yazar. Kaynak ve hedef dizeler çakışıyorsa, öğesinin davranışı strcat_s tanımlanmamıştır.

İkinci parametre, arabelleğinde kalan boyutu değil toplam boyutudur:

char buf[16];
strcpy_s(buf, 16, "Start");
strcat_s(buf, 16, " End");               // Correct
strcat_s(buf, 16 - strlen(buf), " End"); // Incorrect

wcscat_s ve _mbscat_s geniş karakterli ve çok baytlı sürümleridir strcat_s. bağımsız değişkenleri ve dönüş değeri wcscat_s geniş karakterli dizelerdir. bağımsız değişkenleri ve dönüş değeri _mbscat_s çok baytlı karakter dizeleridir. Bu üç işlev aynı şekilde davranır.

Null işaretçiyse strDestination veya null sonlandırılmamışsa veya işaretçiyse NULLstrSource ya da hedef dize çok küçükse, Parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, bu işlevler döndürülerek EINVAL olarak EINVALayarlanırerrno.

Son eki olan _l işlevlerin sürümleri aynı davranışa sahiptir, ancak geçerli yerel ayar yerine geçirilen yerel ayar parametresini kullanır. Daha fazla bilgi için bkz . Yerel Ayar.

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 Rutin _UNICODE ve _MBCS tanımlanmadı _MBCS Tanımlanan _UNICODE Tanımlanan
_tcscat_s strcat_s _mbscat_s wcscat_s

Gereksinimler

Yordam Gerekli başlık
strcat_s <string.h>
wcscat_s <string.h> veya <wchar.h>
_mbscat_s <mbstring.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

, , _mbscpy_swcscpy_siçindeki strcpy_skod örneğine bakın.

Ayrıca bkz.

Dize işleme
strncat, _strncat_l, wcsncat, _wcsncat_l, _mbsncat, _mbsncat_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l
strspn, wcsspn, _mbsspn, _mbsspn_l