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 |
---|
_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
Ayrıca bkz.
Başvuru
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