strcpy - ライブラリコールの説明 - Linux コマンド集 一覧表
名前
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 はコピーを受け取るのに十分な 程度に大きくなければならない。
src のn バイトを越えない数の文字がコピーされることを 除けば、strncpy ()関数も同様である。 したがって、もし src の最初のn バイトの中に NUL 文字が無ければ、 コピーの結果としてできる文字列は NUL で終端していないものになる。
src の長さが n よりも少ない場合は、 dest の残りはヌルバイトで埋められる。
返り値
strcpy ()関数とstrncpy ()関数は 受け側の文字列dest へのポインタを返す。
バグ
strcpy ()の受け側の文字列が十分に大きくない場合 (つまり、プログラマが間抜けか不精で、 コピーする前にサイズをチェックすることを怠った場合)、何が起こるかわからない。 固定長文字列を溢れさせるのはクラッカーが好むテクニックである。
準拠
SVr4, 4.3BSD, C89, C99.