_mbsnbcpy, _mbsnbcpy_l

字串的 n 個位元組複製到目的地字串。 這些函式有更安全的版本可供使用,請參閱 _mbsnbcpy_s_mbsnbcpy_s_l

重要

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

語法

unsigned char * _mbsnbcpy(
   unsigned char * strDest,
   const unsigned char * strSource,
   size_t count
);
unsigned char * _mbsnbcpy_l(
   unsigned char * strDest,
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
);
template <size_t size>
unsigned char * _mbsnbcpy(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count
); // C++ only
template <size_t size>
unsigned char * _mbsnbcpy_l(
   unsigned char (&strDest)[size],
   const unsigned char * strSource,
   size_t count,
   _locale_t locale
); // C++ only

參數

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

strSource
要複製的字元字串。

count
要複製的位元組數目。

locale
要使用的地區設定。

傳回值

_mbsnbcpy 會傳回目的字元字串的指標。 未保留表示錯誤的傳回值。

備註

_mbsnbcpy 函式從 strSource 複製 count 個位元組到 strDest。 如果 strDest 超過 _mbsnbcpy 的大小,或來源和目的字串重疊,則 count 的行為未定義。

如果 strSourcestrDest 為 Null 指標,此函式會叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行,函式會傳回 NULL,並將 errno 設為 EINVAL

輸出值會受到 LC_CTYPE 地區設定之類別設定的影響。 如需詳細資訊,請參閱setlocale。 這些函式的版本相同,不同之處在于沒有 _l 尾碼的函式會使用目前的地區設定,而具有 _l 尾碼的版本會改用傳入的地區設定參數。 如需詳細資訊,請參閱 Locale

重要

這些函式可能容易受到緩衝區滿溢的威脅。 緩衝區滿溢可以用來執行任意的攻擊者程式碼,這會造成非預期的提高權限,並且危害系統。 如需詳細資訊,請參閱 避免緩衝區滿溢

在 C++ 中,這些函式具有多載樣板,可以叫用這些函式的更新、更安全之對應版本。 如需詳細資訊,請參閱 保護範本多載

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

泛型文字常式對應

Tchar.h 常式 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_tcsncpy strncpy _mbsnbcpy wcsncpy
_tcsncpy_l _strncpy_l _mbsnbcp_l _wcsncpy_l

需求

常式 必要的標頭
_mbsnbcpy <mbstring.h>
_mbsnbcpy_l <mbstring.h>

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

另請參閱

字串操作
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l
_mbsnbset, _mbsnbset_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l