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/ に書かれている。

GNU                                                2014-01-13                                          STPCPY(3)