다음을 통해 공유


_TRUNCATE

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

#include <stdlib.h>

설명

이 함수에 count 매개변수로 전달될때, _TRUNCATE 은 잘라내기 동작을 활성화합니다.

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

참고 항목

참조

전역 상수