Функция StringCbCatN


Функция StringCbCatN - это замена для функции strncat. Размер целевого буфера, в байтах, предназначается для функции, чтобы гарантировать, что StringCbCatN не запишет помимо конца этого буфера.

Синтаксис

HRESULT StringCbCatN(      

    LPTSTR pszDest,
    size_t cbDest,
    LPCTSTR pszSrc,
    size_t cbMaxAppend
);

Параметры

pszDest

[in, out] Указатель на буфер, содержащий в себе строку, с которой объединяется строка pszSrc, и который содержит всю результирующую строку. Строка в pszSrc, до cbMaxAppend байтов, добавляется в конец строки в pszDest.

cbDest

[in] Размер целевого буфера, в байтах. Это значение должно принять во внимание длину pszSrc, или плюс длину pszDest, или плюс cbMaxAppend (какой бы маленькой она не была) плюс символ завершающего нуля. Максимальное число байтов допускается STRSAFE_MAX_CCH * sizeof (TCHAR).

pszSrc

[in]Указатель на буфер, содержащий в себе исходную строку, которая объединяется до конца pszDest. Эта исходная строка должна быть завершена символом конца строки ('\0').

cbMaxAppend

[in] Максимальное число байтов, которое добавляется в конец в pszDest.

Возвращаемое значение

Обратите внимание! на то, что функцией возвращается значений HRESULT в противоположность функции strncat, которая возвращает указатель. Настоятельно рекомендуется, что вы использовали макроопределение SUCCEEDED и FAILED, чтобы проверить возвращаемое значение этой функции.

 

S_OK Исходные данные присутствовали, строки были скопированы без усечения, а итоговый результат целевого буфера завершается символом конца строки ('\0').
STRSAFE_E_INVALID_PARAMETER Значение в cbDest больше максимально возможного значение, или целевой буфер уже заполнен.
STRSAFE_E_INSUFFICIENT_BUFFER Операция конкатенации (объединения) завершилась ошибкой из-за недостаточного пространства буфера. Целевой буфер содержит обрезанную версию строки с нулевым символом в конце предполагаемого результата. В ситуациях, где усечение является приемлемым, это может не обязательно быть замечено как условие сбоя.

Замечания

Функция StringCbCatN предусматривает дополнительную обработку для правильной обработки буфера в вашем коде. Неправильная обработка буфера влечется за собой многие проблемы обеспечения безопасности, которые вызывают переполнение буфера. StringCbCatN всегда завершает символом конца строки ('\0') целевой буфер ненулевой длины.

Функция StringCbCatN может быть использована в своей унифицированной форме, или специально как StringCbCatNA (для строк ANSI) или StringCbCatNW (для строк Unicode). Форма использования определяется вашими данными.

Тип данных строки

Литерал строки

Функция

char "string" StringCbCatNA
TCHAR TEXT("string") StringCbCatN
WCHAR L"string" StringCbCatNW

Функция StringCbCatN и ёе варианты ANSI и Unicode являются заменой для этих функций:

Поведение функции неопределенное, если строки указанные параметрами pszSrc и pszDest частично перекрываются.

Ни pszSrc, ни pszDest не должны быть NULL. См. описание функции StringCbCatEx, если вам требуется обработка значений указателя пустой строки.

Смотри также

Обзор Строки, Функции, используемые строками, StringCchCatN, StringCbCatNEx, StringCbCat

Размещение и совместимость StringCbCatN

К Windows XP Да
л Windows 2000 Professional Да
и Windows NT Workstation Да версии 3.1
е Windows Me Да
н Windows 98 Да
т Windows 95 Да
 
С Windows Server 2003 Да
е Windows 2000 Server Да
р Windows NT Server Да версии 3.1
в    
е    
р    
Используемая библиотека strsafe.lib
Используемая DLL -
Заголовочный файл  
- объявлено в strsafe.h
- включено в -
Unicode Реализуются как версии Unicode и ANSI.
Замечания по платформе Не имеется

 

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz