_TRUNCATE_TRUNCATE

문자열 잘라내기 동작을 지정합니다.Specifies string truncation behavior.

구문Syntax

#include <stdlib.h>  

설명Remarks

_TRUNCATE는 다음 함수에 count 매개 변수로 전달될 때 잘라내기 동작을 가능하게 만듭니다._TRUNCATE enables truncation behavior when passed as the count parameter to these functions:

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_lstrncpy_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_lstrncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l

mbstowcs_s, _mbstowcs_s_lmbstowcs_s, _mbstowcs_s_l

mbsrtowcs_smbsrtowcs_s

wcstombs_s, _wcstombs_s_lwcstombs_s, _wcstombs_s_l

wcsrtombs_swcsrtombs_s

_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_lvsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

대상 버퍼가 너무 작아서 전체 문자열을 포함할 수 없으면 이를 오류 상황으로 처리하는 것이 이러한 함수의 일반적인 동작입니다(매개 변수 유효성 검사 참조).If the destination buffer is too small to hold the entire string, the normal behavior of these functions is to treat it as an error situation (see Parameter Validation). 그러나 _TRUNCATE를 전달하여 문자열 잘라내기가 가능할 경우 이러한 함수는 대상 버퍼가 null로 종료된 상태로 둔 채 맞는 만큼의 문자열 부분만 복사하고 반환됩니다.However, if string truncation is enabled by passing _TRUNCATE, these functions will copy only as much of the string as will fit, leaving the destination buffer null-terminated, and return successfully.

문자열 잘라내기는 영향을 받는 함수의 반환 값을 변경합니다.String truncation changes the return values of the affected functions. 다음 함수는 잘라내기가 발생하지 않으면 0을 반환하고, 잘라내기가 발생하면 STRUNCATE를 반환합니다.The following functions return 0 if no truncation occurs, or STRUNCATE if truncation does occur:

strncpy_s, _strncpy_s_l, wcsncpy_s, _wcsncpy_s_l, _mbsncpy_s, _mbsncpy_s_lstrncpy_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_lstrncat_s, _strncat_s_l, wcsncat_s, _wcsncat_s_l, _mbsncat_s, _mbsncat_s_l

wcstombs_s, _wcstombs_s_lwcstombs_s, _wcstombs_s_l

mbstowcs_s, _mbstowcs_s_lmbstowcs_s, _mbstowcs_s_l

다음 함수는 잘라내기가 발생하지 않으면 복사된 문자 수를 반환하고, 잘라내기가 발생하면 -1을 반환합니다(원래 snprintf 함수의 동작과 일치).The following functions return the number of characters copied if no truncation occurs, or -1 if truncation does occur (matching the behavior of the original snprintf functions):

_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l_snprintf_s, _snprintf_s_l, _snwprintf_s, _snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_lvsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s, _vsnwprintf_s_l

예제Example

// 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 );  
}  
truncation occurred!  
'1234'  

참고 항목See Also

전역 상수Global Constants