名前


strcpy, strncpy - 文字列をコピーする

書式


#include <string.h>

char *strcpy(char *dest, const char *src);

char *strncpy(char *dest, const char *src, size_t n);

説明


strcpy() 関数は src(終端文字‘\0’を含む)をポインタとする文字列を destをポインタとする配列にコピーする。 二つの文字列は重ならない。 受け側の文字列であるdestはコピーを受け取るのに十分な 程度に大きくなければならない。

srcnバイトを越えない数の文字がコピーされることを 除けば、 strncpy() 関数も同様である。 したがって、もし srcの最初のnバイトの中に NUL 文字が無ければ、 コピーの結果としてできる文字列は NUL で終端していないものになる。

src の長さが n よりも少ない場合は、 dest の残りはヌルバイトで埋められる。

返り値


strcpy() 関数と strncpy() 関数は 受け側の文字列destへのポインタを返す。

準拠


SVr4, 4.3BSD, C89, C99.

バグ


strcpy() の受け側の文字列が十分に大きくない場合 (つまり、プログラマが間抜けか不精で、 コピーする前にサイズをチェックすることを怠った場合)、何が起こるかわからない。 固定長文字列を溢れさせるのはクラッカーが好むテクニックである。

関連項目


bcopy(3), memccpy(3), memcpy(3), memmove(3), wcscpy(3), wcsncpy(3)

openSUSE Logo

コンテンツ