_mbccpy_s
, _mbccpy_s_l
Menyalin satu karakter multibyte dari string ke string lain. Versi _mbccpy
, _mbccpy_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 _mbccpy_s(
unsigned char *dest,
size_t buffSizeInBytes,
int * pCopied,
const unsigned char *src
);
errno_t _mbccpy_s_l(
unsigned char *dest,
size_t buffSizeInBytes,
int * pCopied,
const unsigned char *src,
_locale_t locale
);
template <size_t size>
errno_t _mbccpy_s(
unsigned char (&dest)[size],
int * pCopied,
const unsigned char *src
); // C++ only
template <size_t size>
errno_t _mbccpy_s_l(
unsigned char (&dest)[size],
int * pCopied,
const unsigned char *src,
_locale_t locale
); // C++ only
Parameter
dest
Salin tujuan.
buffSizeInBytes
Ukuran buffer tujuan.
pCopied
Diisi dengan jumlah byte yang disalin (1 atau 2 jika berhasil). Teruskan NULL
jika Anda tidak peduli tentang nomor tersebut.
src
Karakter multibyte untuk disalin.
locale
Lokal untuk digunakan.
Nilai hasil
Nol jika berhasil; kode kesalahan pada kegagalan. Jika src
atau dest
, NULL
atau jika lebih dari buffSizeinBytes
byte akan disalin ke dest
, maka handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi mengembalikan EINVAL
, dan errno
diatur ke EINVAL
.
Keterangan
Fungsi _mbccpy_s
menyalin satu karakter multibyte dari src
ke dest
. Jika src
tidak menunjuk ke byte prospek karakter multibyte seperti yang ditentukan oleh panggilan implisit ke _ismbblead
, maka byte tunggal yang src
menunjuk ke disalin. Jika src
menunjuk ke byte prospek, tetapi byte berikut adalah 0 dan dengan demikian tidak valid, maka 0 disalin ke dest
, errno
diatur ke EILSEQ
, dan fungsi mengembalikan EILSEQ
.
_mbccpy_s
tidak menambahkan terminator null; namun, jika src
menunjuk ke karakter null, maka null tersebut disalin ke dest
(sebagai salinan byte tunggal biasa).
Nilai di diisi dengan jumlah byte yang disalin pCopied
. Nilai yang mungkin adalah 1 dan 2 jika operasi berhasil. Jika NULL
diteruskan, parameter ini diabaikan.
src |
disalin ke dest |
pCopied |
Nilai hasil |
---|---|---|---|
non-lead-byte | non-lead-byte | 1 | 0 |
0 | 0 | 1 | 0 |
lead-byte diikuti oleh non-0 | lead-byte diikuti oleh non-0 | 2 | 0 |
lead-byte diikuti oleh 0 | 0 | 1 | EILSEQ |
Baris kedua hanyalah kasus khusus dari baris pertama. Tabel mengasumsikan buffSizeInBytes
>= pCopied
.
_mbccpy_s
menggunakan lokal saat ini untuk perilaku dependen lokal apa pun. _mbccpy_s_l
identik dengan _mbccpy_s
kecuali yang menggunakan lokal yang _mbccpy_s_l
diteruskan untuk perilaku yang bergantung pada lokal.
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. Untuk informasi selengkapnya, lihat Mengamankan kelebihan beban templat.
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 |
---|---|---|---|
_tccpy_s |
Peta ke makro atau fungsi sebaris. | _mbccpy_s |
Peta ke makro atau fungsi sebaris. |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_mbccpy_s |
<mbstring.h> |
_mbccpy_s_l |
<mbstring.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Baca juga
Lokal
Interpretasi urutan karakter multibyte
_mbclen
, mblen
, _mblen_l
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