Share via


_mbccpy_s, _mbccpy_s_l

將一個多位元組字元從某個字串複製到另一個字串。 這些版本的 _mbccpy 具有 _mbccpy_l 安全性增強功能,如 CRT 中的安全性功能中所述

重要

這個 API 不能用於在 Windows 執行階段中執行的應用程式。 如需詳細資訊,請參閱 CRT functions not supported in Universal Windows Platform apps (通用 Windows 平台應用程式中不支援的 CRT 函式)。

語法

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

參數

dest
複製目的地。

buffSizeInBytes
目的緩衝區大小。

pCopied
填入所複製的位元組數目 (若成功,即為 1 或 2)。 如果數目無關緊要,則傳遞 NULL

src
要複製的多位元組字元。

locale
要使用的地區設定。

傳回值

如果成功,就是零,如果失敗,則為錯誤碼。 如果 srcdestNULL ,或是將超過 buffSizeinBytes 位元組複製到 dest ,則會叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行,函式會傳回 EINVAL ,並將 errno 設定為 EINVAL

備註

_mbccpy_s 函式會將一個多位元組字元從 src 複製到 dest。 如果未 src 指向由隱含呼叫 _ismbblead 所決定之多位元組字元的前置位元組,則會複製指向 的單一位元組 src 。 如果 src 指向前置位元組,但下列位元組為 0,因此無效,則會將 0 複製到 desterrno ,並將 設為 EILSEQ ,且函式會傳 EILSEQ 回 。

_mbccpy_s 不會附加 Null 結束字元;不過,如果 src 指向 Null 字元,則會將該 Null 複製到 dest (做為一般單一位元組複本)。

填入所複製的位元組數目作為 pCopied 中的值。 如果作業成功,可能的值為 1 和 2。 如果傳入 NULL,則會略過這個參數。

src 已複製到 dest pCopied 傳回值
非前導位元組 非前導位元組 1 0
0 0 1 0
後面接著非 0 的前導位元組 後面接著非 0 的前導位元組 2 0
後面接著 0 的前導位元組 0 1 EILSEQ

第二個數據列只是第一個資料列的特殊案例。 資料表假設 buffSizeInBytes> = pCopied

針對任何地區設定相關行為,_mbccpy_s 會使用目前的地區設定。 _mbccpy_s_l_mbccpy_s 相同,只不過 _mbccpy_s_l 會針對任何與地區設定相關的行為使用傳入的地區設定。

在 C++ 中,使用這些函式已透過範本多載簡化;多載可自動推斷緩衝區長度,因而不需要指定大小引數。 如需詳細資訊,請參閱 保護範本多載

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

泛型文字常式對應

Tchar.h 常式 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_tccpy_s 巨集或內嵌函式的對應。 _mbccpy_s 巨集或內嵌函式的對應。

需求

常式 必要的標頭
_mbccpy_s <mbstring.h>
_mbccpy_s_l <mbstring.h>

如需相容性詳細資訊,請參閱相容性

另請參閱

地區設定
多位元組字元序列的解譯
_mbclen, mblen, _mblen_l