Provided by: manpages-ja-dev_0.5.0.0.20140515+dfsg-2_all bug

名前

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

書式

       #include <string.h>

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

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

       stpcpy():
           glibc 2.10 以降:
               _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
           glibc 2.10 より前:
               _GNU_SOURCE

説明

       stpcpy()  関数は、src で指された文字列を (文字列を終端するヌルバイト ('\0') を含めて) dest
       で指された配列にコピーする。 文字列は重複してはならず、コピー先の文字列 dest  はコピーを受
       け取る のに十分大きくなくてはならない。

返り値

       stpcpy()   は、文字列 dest の始まりではなく 終りを指すポインタ (すなわち、文字列を終端する
       ヌルバイト) を返す。

属性

   マルチスレッディング (pthreads(7) 参照)
       stpcpy() 関数はスレッドセーフである。

準拠

       この関数は POSIX.1-2008 に追加された。 それ以前は、この関数は C や POSIX.1  標準の一部でも
       UNIX  システムの慣習的なものでもなかったが、 GNU の発明というわけでもなかった。 ひょっとし
       たら MS-DOS 由来のものかもしれない。 この関数は 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 プロジェクトのリリース 3.65 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。