stpcpy -
文字列をコピーし、コピーした文字列の終りへのポインターを返す
#include <string.h>
char *stpcpy(char *dest, const char *src);
stpcpy():
- glibc 2.10 以降:
- _POSIX_C_SOURCE >= 200809L
- glibc 2.10 より前:
- _GNU_SOURCE
stpcpy() 関数は、
src
で指された文字列を
(文字列を終端するヌルバイト
('\0') を含めて)
dest
で指された配列にコピーする。
文字列は重複してはならず、コピー先の文字列
dest
はコピーを受け取る
のに十分大きくなくてはならない。
stpcpy() は、文字列
dest
の始まりではなく
終りを指すポインター
(すなわち、文字列を終端するヌルバイト)
を返す。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
stpcpy() |
Thread safety |
MT-Safe |
この関数は POSIX.1-2008
に追加された。
それ以前は、この関数は
C や POSIX.1 標準の一部でも
UNIX
システムの慣習的なものでもなかった。
この関数は Lattice C AmigaDOS
コンパイラで初めて登場し、それは少なくとも
1986
年時点ではそうであった。
その後、 1989 年に GNU fileutils と
GNU textutils に登場し、 1992
年までには GNU C
ライブラリにも存在していた。
この関数は 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
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。