Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

       stpcpy - 文字列をコピーし、コピーした文字列の終りへのポインターを返す

書式

       #include <string.h>

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

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       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 の範囲を行き過ぎてしまう可能性がある。

       例として、このプログラムは foobar を連結して 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/ に書かれている。