Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Копирует n байт строки в целевую строку. Эти версии имеют _mbsnbcpy_lулучшения безопасности, как описано в функциях _mbsnbcpyбезопасности в CRT.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
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 копирует count байт из strSource в strDest. Если count размер превышает размер strDestвходных строк, является указателем NULL или sizeInBytes count значением 0, функция вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров. Если выполнение может быть продолжено, функция возвращает EINVAL. При перекрытии исходной и конечной строк поведение функции _mbsnbcpy_s не определено.
Выходное значение зависит от параметра LC_CTYPE категории языкового стандарта. Дополнительные сведения см. в разделе setlocale. Версии этих функций без суффикса _l используют текущий языковой стандарт для данного поведения, зависимого от языкового стандарта. Версии с суффиксом _l идентичны, однако они используют переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.
Примечание.
В отличие от небезопасной версии этой функции, функция _mbsnbcpy_s не выполняет заполнение значениями 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_l_mbsnbcnt_mbsnccnt,_mbsnccnt_l
_mbsnbicmp, _mbsnbicmp_l
_mbsnbset, _mbsnbset_l
strncpy, , _strncpy_l_wcsncpy_lwcsncpy_mbsncpy,_mbsncpy_l