_mbsnbcat_s
, _mbsnbcat_s_l
マルチバイト文字列に、別のマルチバイト文字列の先頭の (最大) n バイトを追加します。 これらの関数は、CRT のセキュリティ機能で説明されているように、セキュリティが強化された_mbsnbcat
_mbsnbcat_l
のバージョンです。
重要
この API は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。
構文
errno_t _mbsnbcat_s(
unsigned char *dest,
size_t sizeInBytes,
const unsigned char *src,
size_t count
);
errno_t _mbsnbcat_s_l(
unsigned char *dest,
size_t sizeInBytes,
const unsigned char *src,
size_t count,
_locale_t locale
);
template <size_t size>
errno_t _mbsnbcat_s(
unsigned char (&dest)[size],
const unsigned char *src,
size_t count
); // C++ only
template <size_t size>
errno_t _mbsnbcat_s_l(
unsigned char (&dest)[size],
const unsigned char *src,
size_t count,
_locale_t locale
); // C++ only
パラメーター
dest
NULL で終わるマルチバイト文字のコピー先文字列。
sizeInBytes
dest
バッファーのサイズ (バイト単位)。
src
NULL で終わるマルチバイト文字のコピー元文字列。
count
src
に追加される dest
のバイト数。
locale
使用するロケール。
戻り値
正常に終了した場合は 0 を返し、それ以外の場合はエラー コードを返します。
エラー条件
dest |
sizeInBytes |
src |
戻り値 |
---|---|---|---|
NULL |
任意 | 任意 | EINVAL |
Any | <= 0 | 任意 | EINVAL |
Any | 任意 | NULL |
EINVAL |
エラー状態のいずれかが発生した場合、「パラメーターの検証で説明されているように、関数は無効なパラメーター エラー生成します。 エラーが処理されたとき、関数は EINVAL
を返し、errno
に EINVAL
を設定します。
解説
_mbsnbcat_s
関数は、dest
に、src
の先頭の最大 count
バイトを追加します。 dest
内の null 文字の直前にあるバイトが先行バイトである場合、それは src
の最初のバイトによって上書きされます。 そうでなければ、src
の先頭のバイトは、dest
の終端の null 文字を上書きします。 count
バイトを追加する前に src
に null バイトが現れた場合、_mbsnbcat_s
は null 文字までの src
内のすべてのバイトを追加します。 count
が src
の長さを超えている場合は、src
の長さが count
の代わりに使用されます。 結果の文字列は null 文字で終了します。 重なり合う文字列間でコピーした場合の動作は未定義です。
出力値は、ロケールの LC_CTYPE
カテゴリ設定の設定によって影響を受けます。 詳細については、setlocale
を参照してください。 _l
サフィックスが付いていないバージョンが現在のロケールを使用し、_l
サフィックスが付いているバージョンが渡されたロケール パラメーターを代わりに使用する点を除いて、これらの関数のバージョンは同じです。 詳細については、「 Locale」を参照してください。
C++ では、これらの関数の使用がテンプレートのオーバーロードによって簡略化されます。 オーバーロードでは、バッファーの長さを自動的に推論できるため、サイズ引数を指定する必要がなくなります。また、より安全な新しい関数を自動的に使用して、セキュリティが低い古い関数を置き換えることができます。 詳細については、「セキュリティ保護されたテンプレート オーバーロード」を参照してください。
これらの関数のデバッグ ライブラリ バージョンでは、最初にバッファーを 0xFE で埋めます。 この動作を無効にするには、_CrtSetDebugFillThreshold
を使用します。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT でのグローバル状態」を参照してください。
汎用テキスト ルーチンのマップ
Tchar.h ルーチン |
_UNICODE と _MBCS が定義されていない |
_MBCS が定義されている |
_UNICODE が定義されている |
---|---|---|---|
_tcsncat_s |
strncat_s |
_mbsnbcat_s |
wcsncat_s |
_tcsncat_s_l |
_strncat_s_l |
_mbsnbcat_s_l |
_wcsncat_s_l |
要件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_mbsnbcat_s |
<mbstring.h> |
_mbsnbcat_s_l |
<mbstring.h> |
互換性の詳細については、「 Compatibility」を参照してください。
関連項目
文字列操作
_mbsnbcmp
, _mbsnbcmp_l
_strncnt
、 _wcsncnt
、 _mbsnbcnt
、 _mbsnbcnt_l
、 _mbsnccnt
、 _mbsnccnt_l
_mbsnbcpy
, _mbsnbcpy_l
_mbsnbcpy_s
, _mbsnbcpy_s_l
_mbsnbset
, _mbsnbset_l
strncat
、 _strncat_l
、 wcsncat
、 _wcsncat_l
、 _mbsncat
、 _mbsncat_l
strncat_s
、 _strncat_s_l
、 wcsncat_s
、 _wcsncat_s_l
、 _mbsncat_s
、 _mbsncat_s_l