_TRUNCATE
Menentukan perilaku pemotongan string.
Sintaks
#include <stdlib.h>
Keterangan
_TRUNCATE
memungkinkan perilaku pemotongan ketika diteruskan sebagai count
parameter ke fungsi-fungsi ini:
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
Jika buffer tujuan terlalu kecil untuk menahan seluruh string, perilaku normal fungsi-fungsi ini adalah memperlakukannya sebagai situasi kesalahan (lihat Validasi parameter). Namun, jika pemotongan string diaktifkan dengan meneruskan _TRUNCATE
, fungsi-fungsi ini hanya akan menyalin string sebanyak yang akan pas, membiarkan buffer tujuan dihentikan null, dan berhasil dikembalikan.
Pemotongan string mengubah nilai pengembalian fungsi yang terpengaruh. Fungsi berikut mengembalikan 0 jika tidak ada pemotongan yang terjadi, atau STRUNCATE
jika pemotongan terjadi:
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
Fungsi berikut mengembalikan jumlah karakter yang disalin jika tidak ada pemotongan yang terjadi, atau -1 jika pemotongan terjadi (cocok dengan perilaku fungsi asli snprintf
):
_snprintf_s
, _snprintf_s_l
, _snwprintf_s
, _snwprintf_s_l
vsnprintf_s
, _vsnprintf_s
, _vsnprintf_s_l
, _vsnwprintf_s
, _vsnwprintf_s_l
Contoh
// 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'
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk