Aracılığıyla paylaş


strcat_s, wcscat_s, _mbscat_s

Bir dize ekler.Sürümleri bunlar strcat wcscat, _mbscat açıklandığı gibi güvenlik geliştirmeleri ile crt güvenlik özellikleri.

Önemli notÖnemli

_mbscat_sWindows çalışma zamanı yürütme uygulamalarda kullanılamaz.Daha fazla bilgi için bkz: /zw ile desteklenmeyen crt işlevlerinin.

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 
);
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

Parametreler

  • strDestination
    Hedef boşlukla sonlandırılmış dize arabelleğine.

  • numberOfElements
    Hedef dizesi arabelleği boyutu.

  • strSource
    Kaynak boşlukla sonlandırılmış dize arabelleğine.

Dönüş Değeri

Sıfır başarılı olursa; hata durumunda bir hata kodu.

Hata koşulları

strDestination

numberOfElements

strSource

Dönüş değeri

İçeriğistrDestination

NULLveya sonlandırılmamış

herhangi bir

herhangi bir

EINVAL

modifiye edilmemiş

herhangi bir

herhangi bir

NULL

EINVAL

strDestination0 olarak ayarlanırsa [0]

herhangi bir

0 veya çok küçük

herhangi bir

ERANGE

strDestination0 olarak ayarlanırsa [0]

Notlar

strcat_s İşlev ekler strSource için strDestination ve sonuç dizesi null karakteri ile sona erer.İlk karakteri strSource , sondaki boş karakter üzerine yazar strDestination.Davranışını strcat_s kaynak ve hedef dizeleri üst üste gelirse tanımsızdır.

İkinci parametre arabellek değil kalan boyutu toplam boyutu olduğuna dikkat edin:

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

wcscat_sve _mbscat_s geniş karakter ve çok baytlı karakter sürümleri strcat_s.Bağımsız değişkenleri ve dönüş değeri wcscat_s geniş karakter dizesidir; _mbscat_s çok baytlı karakter dizeleridir.Bu üç işlevi aynı şekilde aksi davranır.

strDestination Bir null işaretçi veya null sonlandırılmış değil, veya strSource olan bir NULL işaretçisi ya da açıklandığı gibi hedef dize parametresi geçersiz işleyici çağrıldığında, çok küçük ise, Parametre doğrulama.Yürütülmesine devam etmek için izin verilip verilmediğini, bu işlevler dönmek EINVAL ve errno için EINVAL.

C++'da, bu işlevleri kullanarak şablon aşırı yükleme tarafından Basitleştirilmiş; aşırı arabellek uzunluğu otomatik olarak çıkarabilir (size baðýmsýz deðiþkeni belirtmek gereğini ortadan kaldırır) ve bunların daha eski, güvenli olmayan işlevler daha yeni ve güvenli karşılıklarıyla otomatik olarak değiştirebilirsiniz.Daha fazla bilgi için bkz. Güvenli şablon aşırı yükleme.

Bu işlevleri hata ayıklama sürümleri arabellek 0xFD ile doldurun.Bu davranışı devre dışı bırakmak için _CrtSetDebugFillThreshold.

Genel metin eşlemeleri yordamına girildi

TCHAR.H yordamına girildi

_UNICODE & _mbcs tanımlanmamış

Tanımlanan _mbcs

Tanımlanan _UNICODE

_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>

Ek uyumluluk bilgileri için bkz: Uyumluluk giriş.

Örnek

Aşağıdaki kod örneğinde bkz: strcpy_s, wcscpy_s, _mbscpy_s.

.NET Framework Eşdeğeri

System::string::concat

Ayrıca bkz.

Başvuru

Dize işlemleri (crt)

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