.\" Updated 2012-05-29, Akihiro MOTOKI <amotoki@gmail.com>
.\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
.\"
-.TH STRCPY 3 2012\-07\-19 GNU "Linux Programmer's Manual"
+.TH STRCPY 3 2014\-03\-04 GNU "Linux Programmer's Manual"
.SH 名前
strcpy, strncpy \- 文字列をコピーする
.SH 書式
.in
.SH 返り値
\fBstrcpy\fP() 関数と \fBstrncpy\fP() 関数は 受け側の文字列\fIdest\fPへのポインタを返す。
+.SH 属性
+.SS "マルチスレッディング (pthreads(7) 参照)"
+関数 \fBstrcpy\fP() と \fBstrncpy\fP() はスレッドセーフである。
.SH 準拠
SVr4, 4.3BSD, C89, C99.
.SH 注意
宛先バッファの未使用バイトが 0 で埋められることの両方を保証しつつ行うことである。 (宛先バッファを 0 で埋めるのは、 たいていの場合、
バッファを媒体に書き込んだり、別のプロセスにプロセス間通信を用いて送信したりした場合に情報洩れを防ぐためである)。
-\fIsrc\fP の最初の \fIn\fP バイトに終端のヌルバイトがない場合、 \fBstrncpy\fP()
-は \fIdest\fP に終端されていない文字列を生成する。以下のようにして
-強制的に終端することができる。
+\fIsrc\fP の最初の \fIn\fP バイトに終端のヌルバイトがない場合、 \fBstrncpy\fP() は \fIdest\fP
+に終端されていない文字列を生成する。 \fIbuf\fP の長さが \fIbuflen\fP の場合、以下のようにして強制的に終端することができる。
.in +4n
.nf
-strncpy(buf, str, n);
-if (n > 0)
- buf[n \- 1]= \(aq\e0\(aq;
+strncpy(buf, str, buflen \- 1);
+if (buflen > 0)
+ buf[buflen \- 1]= \(aq\e0\(aq;
.fi
.in
.PP
-(もちろん、上記の方法では、 \fIsrc\fP に入っている情報が \fIdest\fP へのコピー時に失われるという事実は無視している。)
+(もちろん、上記の方法では、 \fIsrc\fP に入っている情報が \fIbuflen\ \-\ 1\fP バイトよりも多い場合には、 \fIdest\fP
+へのコピー時に情報が失われるという事実は無視している。)
いくつかのシステム (BSD、Solaris など) では以下の関数が提供されている。
\fBbcopy\fP(3), \fBmemccpy\fP(3), \fBmemcpy\fP(3), \fBmemmove\fP(3), \fBstpcpy\fP(3),
\fBstpncpy\fP(3), \fBstrdup\fP(3), \fBstring\fP(3), \fBwcscpy\fP(3), \fBwcsncpy\fP(3)
.SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.63 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man\-pages/ に書かれている。