_mbsnbcpy_s
, _mbsnbcpy_s_l
Menyalin n byte string ke string tujuan. Versi _mbsnbcpy
, _mbsnbcpy_l
ini memiliki peningkatan keamanan, seperti yang dijelaskan dalam Fitur keamanan di CRT.
Penting
API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
errno_t _mbsnbcpy_s(
unsigned char * strDest,
size_t sizeInBytes,
const unsigned char * strSource,
size_t count
);
errno_t _mbsnbcpy_s_l(
unsigned char * strDest,
size_t sizeInBytes,
const unsigned char * strSource,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbcpy_s(
unsigned char (&strDest)[size],
const unsigned char * strSource,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcpy_s_l(
unsigned char (&strDest)[size],
const unsigned char * strSource,
size_t count,
_locale_t locale
); // C++ only
Parameter
strDest
Tujuan untuk string karakter yang akan disalin.
sizeInBytes
Ukuran buffer tujuan.
strSource
String karakter yang akan disalin.
count
Jumlah byte yang akan disalin.
locale
Lokal untuk digunakan.
Nilai hasil
Nol jika berhasil; EINVAL
jika parameter buruk diteruskan.
Keterangan
Fungsi _mbsnbcpy_s
menyalin count
byte dari strSource
ke strDest
. Jika count
melebihi ukuran strDest
, salah satu string input adalah penunjuk null, atau sizeInBytes
atau count
0, fungsi memanggil handler parameter yang tidak valid seperti yang dijelaskan dalam Validasi parameter . Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan EINVAL
. Jika string sumber dan tujuan tumpang tindih, perilaku _mbsnbcpy_s
tidak terdefinisi.
Nilai output dipengaruhi oleh pengaturan LC_CTYPE
pengaturan kategori lokal. Untuk informasi selengkapnya, lihat setlocale
. Versi fungsi-fungsi ini tanpa _l
akhiran menggunakan lokal saat ini untuk perilaku tergantung lokal ini; versi dengan _l
akhiran identik kecuali bahwa mereka menggunakan parameter lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat Lokal.
Catatan
Tidak seperti versi fungsi ini yang tidak aman, _mbsnbcpy_s
tidak melakukan padding null dan selalu null mengakhiri string.
Di C++, menggunakan fungsi-fungsi ini disederhanakan oleh kelebihan beban templat; kelebihan beban dapat menyimpulkan panjang buffer secara otomatis (menghilangkan kebutuhan untuk menentukan argumen ukuran) dan mereka dapat secara otomatis mengganti fungsi lama yang tidak aman dengan rekan-rekan yang lebih baru dan aman. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.
Versi pustaka debug dari fungsi-fungsi ini terlebih dahulu mengisi buffer dengan 0xFE. Untuk menonaktifkan perilaku ini, gunakan _CrtSetDebugFillThreshold
.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tcsncpy_s |
_strncpy_s |
_mbsnbcpy_s |
_wcsncpy_s |
_tcsncpy_s_l |
_strncpy_s_l |
_mbsnbcpy_s_l |
_wcsncpy_s_l |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_mbsnbcpy_s |
<mbstring.h> |
_mbsnbcpy_s_l |
<mbstring.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Lihat juga
Manipulasi string
_mbsnbcat
, _mbsnbcat_l
_mbsnbcmp
, _mbsnbcmp_l
_strncnt
, , _wcsncnt
_mbsnbcnt
, _mbsnbcnt_l
, , _mbsnccnt
,_mbsnccnt_l
_mbsnbicmp
, _mbsnbicmp_l
_mbsnbset
, _mbsnbset_l
strncpy
, , _strncpy_l
wcsncpy
, _wcsncpy_l
, , _mbsncpy
,_mbsncpy_l