_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 で終わる。

文字列の切り捨て影響を受ける関数の戻り値を変更します。次の関数は切り捨てが発生した場合には実行またはを返します STRUNCATE : 0

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

参照

関連項目

グローバル定数