STPCPY(3) | Linux Programmer's Manual | STPCPY(3) |
名前
stpcpy -文字列をコピーし、コピーした文字列の終りへのポインタを返す書式
#include <string.h>
char *stpcpy(char * dest , const char * src );
glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
- glibc 2.10 以降:
- _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
- glibc 2.10 より前:
- _GNU_SOURCE
説明
stpcpy() 関数は、 src で指された文字列を (文字列を終端する NULL バイト ('\0') を含めて) dest で指された配列にコピーする。文字列は重複してはならず、コピー先の文字列 dest はコピーを受け取るのに十分大きくなくてはならない。返り値
stpcpy() は、文字列 dest の始まりではなく 終りを指すポインタ (すなわち、文字列を終端する NULL バイト) を返す。準拠
この関数は POSIX.1-2008 に追加された。それ以前は、この関数は C や POSIX.1 標準の一部でも UNIX システムの慣習的なものでもなかったが、 GNU の発明というわけでもなかった。ひょっとしたら MS-DOS 由来のものかもしれない。この関数は BSD 系にも存在する。バグ
この関数はバッファ dest の範囲を行き過ぎてしまう可能性がある。例
例として、このプログラムは foo と bar を連結して foobar を作るために stpcpy() を使用し、その後表示する。
#define _GNU_SOURCE
#include <string.h>
#include <stdio.h>
int
main(void)
{
char buffer[20];
char *to = buffer;
to = stpcpy(to, "foo");
to = stpcpy(to, "bar");
printf("%s\n", buffer);
}
関連項目
bcopy(3), memccpy(3), memcpy(3), memmove(3), stpncpy(3), strcpy(3), string(3), wcpcpy(3)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2012-03-15 | GNU |