Share via


_mbsnbcpy_s, _mbsnbcpy_s_l

字串的 n 個位元組複製到目的地字串。 這些版本的 _mbsnbcpy 具有 _mbsnbcpy_l 安全性增強功能,如 CRT 中的安全性功能中所述

重要

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

語法

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

參數

strDest
要複製的字元字串之目的地。

sizeInBytes
目的緩衝區大小。

strSource
要複製的字元字串。

count
要複製的位元組數目。

locale
要使用的地區設定。

傳回值

如果成功,則為零;如果傳入錯誤的參數,則為 EINVAL

備註

_mbsnbcpy_s 函式從 strSource 複製 count 個位元組到 strDest。 如果 count 超過 的大小 strDest ,輸入字串是 Null 指標,或 countsizeInBytes 為 0,則函式會叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行,則函式會傳回 EINVAL。 如果來源和目的字串重疊,則 _mbsnbcpy_s 的行為未定義。

輸出值會受到 LC_CTYPE 地區設定之類別設定的影響。 如需詳細資訊,請參閱setlocale。 這些沒有 _l 後置字元的函式版本,會針對此與地區設定相關的行為使用目前的地區設定;具有 _l 後置字元的版本也一樣,只不過它們會改用傳遞的地區設定參數。 如需詳細資訊,請參閱 Locale

注意

不同於此函式的不安全版本,_mbsnbcpy_s 不會執行任何 Null 填補,且一律會以 Null 結束字串。

C++ 利用多載樣板簡化了這些函式的使用方式。多載可自動推斷緩衝區長度 (因而不須指定大小引數),也可以將不安全的舊函式自動取代成較新且安全的對應函式。 如需詳細資訊,請參閱 保護範本多載

這些函式的偵錯程式庫版本會先將緩衝區填入0xFE。 若要停用此行為,請使用 _CrtSetDebugFillThreshold

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

泛型文字常式對應

Tchar.h 常式 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_tcsncpy_s _strncpy_s _mbsnbcpy_s _wcsncpy_s
_tcsncpy_s_l _strncpy_s_l _mbsnbcpy_s_l _wcsncpy_s_l

需求

常式 必要的標頭
_mbsnbcpy_s <mbstring.h>
_mbsnbcpy_s_l <mbstring.h>

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

另請參閱

字串操作
_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