kazmax - Linux で自宅サーバー

strcpy - ライブラリコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. バグ
  6. 準拠
  7. 関連項目

名前

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 へのポインタを返す。

バグ

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

準拠

SVr4, 4.3BSD, C89, C99.

関連項目