_TRUNCATE
Dize kesilme davranışını belirtir.
#include <stdlib.h>
Notlar
_TRUNCATEolarak geçirildiğinde kesme davranışı sağlar count bu işlevlere parametre:
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l
strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l
_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l
vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l
Hedef arabelleğin tüm dizeyi tutamayacak kadar küçük bu işlevlerin normal davranış bir hata durumu olarak ele almasını ise, (bkz: Parametre Doğrulama).Ancak, dize kesilme geçirerek etkinse, _TRUNCATE, çok dize, boş karakterle sonlandırılmış, hedef arabelleğin bırakarak sığan bu işlevler kopyalayacak ve başarılı bir şekilde geri dön.
Dize kesilme etkilenen işlevler dönüş değerlerini değiştirir.Aşağıdaki işlevleri 0 döner hiçbir kesme ortaya çıkarsa, ya da STRUNCATE kesme gerçekleşmesi durumunda:
strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_l
strncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l
Kesme (orijinal snprintf işlevler davranışını eşleşen) oluşursa aşağıdaki işlevleri hiçbir kesme ortaya çıkarsa kopyalanan karakterler veya -1 numaranız:
_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l
vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l
Örnek
// crt_truncate.c
#include <stdlib.h>
#include <errno.h>
int main()
{
char src[] = "1234567890";
char dst[5];
errno_t err = strncpy_s(dst, _countof(dst), src, _TRUNCATE);
if ( err == STRUNCATE )
printf( "truncation occurred!\n" );
printf( "'%s'\n", dst );
}