다음을 통해 공유


_TRUNCATE

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

구문

#include <stdlib.h>

설명

_TRUNCATE는 다음 함수에 count 매개 변수로 전달될 때 잘라내기 동작을 가능하게 만듭니다.

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

mbstowcs_s, _mbstowcs_s_l

mbsrtowcs_s

wcstombs_s, _wcstombs_s_l

wcsrtombs_s

_snprintf_s, _snprintf_s_l, _snwprintf_s_snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s_vsnwprintf_s_l

대상 버퍼가 너무 작아서 전체 문자열을 보유할 수 없는 경우 이러한 함수의 일반적인 동작은 이를 오류 상황으로 처리하는 것입니다(매개 변수 유효성 검사 참조). 그러나 _TRUNCATE를 전달하여 문자열 잘라내기가 가능할 경우 이러한 함수는 대상 버퍼가 null로 종료된 상태로 둔 채 맞는 만큼의 문자열 부분만 복사하고 반환됩니다.

문자열 잘라내기는 영향을 받는 함수의 반환 값을 변경합니다. 다음 함수는 잘라내기가 발생하지 않으면 0을 반환하고, 잘라내기가 발생하면 STRUNCATE를 반환합니다.

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

wcstombs_s, _wcstombs_s_l

mbstowcs_s, _mbstowcs_s_l

다음 함수는 잘림이 발생하지 않으면 복사된 문자 수를 반환하고, 잘림이 발생하면 -1을 반환합니다(원래 snprintf 함수의 동작과 일치).

_snprintf_s, _snprintf_s_l, _snwprintf_s_snwprintf_s_l

vsnprintf_s, _vsnprintf_s, _vsnprintf_s_l, _vsnwprintf_s_vsnwprintf_s_l

예시

// 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'

참고 항목

전역 상수