RtlStringCbCatA 関数 (ntstrsafe.h)

RtlStringCbCatW 関数と RtlStringCbCatA 関数は、2 つのバイトカウント文字列を連結します。

構文

NTSTRSAFEDDI RtlStringCbCatA(
  [in, out] NTSTRSAFE_PSTR  pszDest,
  [in]      size_t          cbDest,
  [in]      NTSTRSAFE_PCSTR pszSrc
);

パラメーター

[in, out] pszDest

入力時に pszSrc が連結される null で終わる文字列を含むバッファーへのポインター。 出力時に、これは結果の文字列全体を含む宛先バッファーです。 pszSrc の文字列は、pszDest の文字列の末尾に追加され、null 文字で終了します。

[in] cbDest

コピー先バッファーのサイズ (バイト単位)。 コピー先バッファーは、連結された文字列と終端の null 文字を含めるのに十分な大きさにする必要があります。

Unicode 文字列の場合、最大バイト数は NTSTRSAFE_MAX_CCH * sizeof(WCHAR) です。

ANSI 文字列の場合、最大バイト数は NTSTRSAFE_MAX_CCH * sizeof(char) です。

[in] pszSrc

null 終端文字列へのポインター。 この文字列は、 pszDest のバッファーに含まれる文字列の末尾に連結されます。

戻り値

関数は、次の表に示す NTSTATUS 値のいずれかを返します。 NTSTATUS 値をテストする方法については、「 NTSTATUS 値の使用」を参照してください。

リターン コード 説明
STATUS_SUCCESS
この 成功 状態は、ソース データが存在し、文字列が切り捨てなしで連結され、結果の宛先バッファーが null で終了したことを意味します。
STATUS_BUFFER_OVERFLOW
この 警告 状態は、バッファー領域が不足しているため、連結操作が完了しなかったことを意味します。 コピー先バッファーには、目的の結果の null で終わる切り捨てられたバージョンが含まれています。
STATUS_INVALID_PARAMETER
この エラー 状態は、関数が無効な入力パラメーターを受信したことを意味します。 詳細については、次の段落を参照してください。

STATUS_INVALID_PARAMETER戻り値は、次のいずれかが発生したことを意味します。

  • cbDest の値が最大バッファー サイズを超えています。
  • 宛先バッファーは既にいっぱいでした。
  • NULL ポインターが存在しました。
  • コピー先のバッファー長は 0 でしたが、0 以外の長さのソース文字列が存在しました。

注釈

RtlStringCbCatWRtlStringCbCatA は、次の関数の代わりに使用する必要があります。

  • strcat
  • wcscat
RtlStringCbCatWRtlStringCbCatA は入力として宛先バッファーのサイズを受け取るため、バッファーの末尾を超えて書き込むわけではありません。

RtlStringCbCatW を使用して Unicode 文字列を処理し、RtlStringCbCatA を使用して ANSI 文字列を処理します。 使用するフォームは、次の表に示すようにデータによって決まります。

文字列データ型 文字列リテラル 機能
WCHAR L"string" RtlStringCbCatW
char "string" RtlStringCbCatA
 

pszSrcpszDest が重複する文字列を指している場合、関数の動作は未定義です。

pszSrcpszDestNULL にすることはできません。 NULL 文字列ポインター値を処理する必要がある場合は、RtlStringCbCatNEx を使用します

安全な文字列関数の詳細については、「安全な文字列関数の 使用」を参照してください。

要件

要件
サポートされている最小のクライアント Service Pack 1 (SP1) 以降のバージョンの Windows XP で使用できます。
対象プラットフォーム デスクトップ
Header ntstrsafe.h (Ntstrsafe.h を含む)
Library Ntstrsafe.lib
IRQL 操作される文字列が常にメモリ内に存在する場合は 、それ以外の場合は PASSIVE_LEVEL

こちらもご覧ください

RtlStringCbCatEx

RtlStringCbCatNEx

RtlStringCchCatEx