C言語編 標準ライブラリのリファレンス wcscpy_s

先頭へ戻る

wcscpy_s関数

概要 ワイド文字列をコピーする。
ヘッダ wchar.h
形式 errno_t wcscpy_s(wchar_t* dest, rsize_t destmax, const wchar_t* src);
引数 dest コピー先の配列。ヌルポインタは不可。
destmax dest の要素数。
src コピー元のワイド文字列。ヌルポインタは不可。また、文字列の長さは destmax よりも小さくなければならない。
戻り値 コピーに成功したら 0 が返される。何らかのエラーが発生したら 0以外が返される。
詳細 バッファオーバーフローなどの危険を避けつつ、dest へ src の内容を終端文字を含めてコピーする。
src、dest のいずれかがヌルポインタである場合、src の文字列長が destmax 以上である場合、src と dest が指すワイド文字列が重なり合っている場合には、実行時制約への違反となる。この場合、dest がヌルポインタでなく、0 < destmax <= RSIZE_MAX が満たされていれば、dest[0] にヌルワイド文字が書き込まれる。
この関数は、__STDC_LIB_EXT1__ が定義されている処理系でのみ使用できる。また、この関数を使用するのなら、<string.h> をインクルードする前に、__STDC_WANT_LIB_EXT1__ という名前のマクロを、置換結果 1 として定義することが作法となっているが、これを行わずとも関数を使用できる処理系もあり得る。
注意 VisualStudio 2015/2017、clang 5.0.0 のいずれでも、__STDC_LIB_EXT1__ が定義されていない。しかし、VisualStudio においては、この関数を使用できる。
使用例
#define __STDC_WANT_LIB_EXT1__ 1
#include <wchar.h>

int main(void)
{
    wchar_t s[20];

    wcscpy_s( s, sizeof(s) / sizeof(s[0]), L"abcde" );
    wprintf( L"%ls\n", s );
    
    return 0;
}

実行結果:

abcde
関連 この関数が定義されていない場合は、wcscpy関数wcsncpy関数を検討する。
マルチバイト文字列版の strcpy_s関数がある。
解説章


参考リンク



更新履歴

'2018/8/23 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ


はてなブックマーク Pocket に保存 Twitter でツイート Twitter をフォロー
Facebook でシェア Google+ で共有 LINE で送る rss1.0 取得ボタン RSS
管理者情報 プライバシーポリシー