OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / release / man3 / strcpy.3
index 144d0dd..7481acc 100644 (file)
@@ -58,8 +58,8 @@ strcpy, strncpy \- 文字列をコピーする
 .fi
 .SH 説明
 \fBstrcpy\fP()  関数は \fIsrc\fP が指す文字列を末尾のヌルバイト (\(aq\e0\(aq) も含めて \fIdest\fP
\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\81«ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82 äº\8cã\81¤ã\81®æ\96\87å­\97å\88\97ã\81¯é\87\8dã\81ªã\81£ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82å\8f\97ã\81\91å\81´ã\81®æ\96\87å­\97å\88\97 \fIdest\fP ã\81¯ ã\82³ã\83\94ã\83¼ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81®ã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
-\fIバッファオーバーランに気を付けること!\fP (「バグ」の節を参照)
\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\99ã\82\8bã\80\82 äº\8cã\81¤ã\81®æ\96\87å­\97å\88\97ã\81¯é\87\8dã\81ªã\81£ã\81¦ã\81¯ã\81ªã\82\89ã\81ªã\81\84ã\80\82å\8f\97ã\81\91å\81´ã\81®æ\96\87å­\97å\88\97 \fIdest\fP ã\81¯
+コピーを受け取るのに十分な大きさでなければならない。 \fIバッファーオーバーランに気を付けること!\fP (「バグ」の節を参照)
 .PP
 \fBstrncpy\fP()  関数も同様だが、 \fIsrc\fP のうち最大でも \fIn\fP バイトしかコピーされない点が異なる。 \fB警告\fP: \fIsrc\fP
 の最初の \fIn\fP バイトの中にヌルバイトがない場合、 \fIdest\fP に格納される文字列はヌルで終端されないことになる。
@@ -86,7 +86,7 @@ strncpy(char *dest, const char *src, size_t n)
 .fi
 .in
 .SH 返り値
-\fBstrcpy\fP()  関数と \fBstrncpy\fP()  関数は 受け側の文字列\fIdest\fPへのポインタを返す。
+\fBstrcpy\fP()  é\96¢æ\95°ã\81¨ \fBstrncpy\fP()  é\96¢æ\95°ã\81¯ å\8f\97ã\81\91å\81´ã\81®æ\96\87å­\97å\88\97\fIdest\fPã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82
 .SH 属性
 .SS "マルチスレッディング (pthreads(7) 参照)"
 関数 \fBstrcpy\fP() と \fBstrncpy\fP() はスレッドセーフである。
@@ -96,9 +96,9 @@ SVr4, 4.3BSD, C89, C99.
 \fBstrncpy\fP()  は効率的でなく間違いを起こしやすいと考えるプログラマもいるだろう。 プログラマが \fIdest\fP の大きさが \fIsrc\fP
 の長さよりも 大きいことを知っている (つまり、そのことをチェックするコードを 書いている) 場合は、 \fBstrcpy()\fP を使うことができる。
 
-\fBstrncpy\fP() ã\81®æ­£ã\81\97ã\81\84 (ã\81\8bã\81¤æ\84\8få\9b³ã\81\95ã\82\8cã\81\9f) ç\94¨é\80\94ã\81¯ã\80\81 C æ\96\87å­\97å\88\97ã\81®å\9bºå®\9aé\95·ã\83\90ã\83\83ã\83\95ã\82¡ã\81¸ã\81®ã\82³ã\83\94ã\83¼ã\82\92ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡がオーバーフローしないことと、
-å®\9bå\85\88ã\83\90ã\83\83ã\83\95ã\82¡ã\81®æ\9cªä½¿ç\94¨ã\83\90ã\82¤ã\83\88ã\81\8c 0 ã\81§å\9f\8bã\82\81ã\82\89ã\82\8cã\82\8bã\81\93ã\81¨ã\81®ä¸¡æ\96¹ã\82\92ä¿\9d証ã\81\97ã\81¤ã\81¤è¡\8cã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82 (å®\9bå\85\88ã\83\90ã\83\83ã\83\95ã\82¡を 0 で埋めるのは、 たいていの場合、
-バッファを媒体に書き込んだり、別のプロセスにプロセス間通信を用いて送信したりした場合に情報洩れを防ぐためである)。
+\fBstrncpy\fP() ã\81®æ­£ã\81\97ã\81\84 (ã\81\8bã\81¤æ\84\8få\9b³ã\81\95ã\82\8cã\81\9f) ç\94¨é\80\94ã\81¯ã\80\81 C æ\96\87å­\97å\88\97ã\81®å\9bºå®\9aé\95·ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81¸ã\81®ã\82³ã\83\94ã\83¼ã\82\92ã\80\81 ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼がオーバーフローしないことと、
+å®\9bå\85\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81®æ\9cªä½¿ç\94¨ã\83\90ã\82¤ã\83\88ã\81\8c 0 ã\81§å\9f\8bã\82\81ã\82\89ã\82\8cã\82\8bã\81\93ã\81¨ã\81®ä¸¡æ\96¹ã\82\92ä¿\9d証ã\81\97ã\81¤ã\81¤è¡\8cã\81\86ã\81\93ã\81¨ã\81§ã\81\82ã\82\8bã\80\82 (å®\9bå\85\88ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼を 0 で埋めるのは、 たいていの場合、
\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92åª\92ä½\93ã\81«æ\9b¸ã\81\8dè¾¼ã\82\93ã\81 ã\82\8aã\80\81å\88¥ã\81®ã\83\97ã\83­ã\82»ã\82¹ã\81«ã\83\97ã\83­ã\82»ã\82¹é\96\93é\80\9aä¿¡ã\82\92ç\94¨ã\81\84ã\81¦é\80\81ä¿¡ã\81\97ã\81\9fã\82\8aã\81\97ã\81\9få ´å\90\88ã\81«æ\83\85報洩ã\82\8cã\82\92é\98²ã\81\90ã\81\9fã\82\81ã\81§ã\81\82ã\82\8b\80\82
 
 \fIsrc\fP の最初の \fIn\fP バイトに終端のヌルバイトがない場合、 \fBstrncpy\fP() は \fIdest\fP
 に終端されていない文字列を生成する。 \fIbuf\fP の長さが \fIbuflen\fP の場合、以下のようにして強制的に終端することができる。
@@ -124,7 +124,7 @@ if (buflen > 0)
 .\"     1999 USENIX Annual Technical Conference
 .\" https://lwn.net/Articles/506530/
 この関数は \fBstrncpy\fP() と同様だが、 最大でも \fIsize\-1\fP バイトしか \fIdest\fP にコピーをせず、
-末尾への終端のヌルバイトの追加が必ず行われ、 宛先バッファ (の未使用部分) へのヌルバイトの書き込みが行われない。 この関数では
+末尾への終端のヌルバイトの追加が必ず行われ、 宛先バッファ (の未使用部分) へのヌルバイトの書き込みが行われない。 この関数では
 \fBstrcpy\fP() や \fBstrncpy\fP() の持つ問題のいくつかが修正されているが、 \fIsize\fP
 が小さすぎた場合にはデータが失われる問題には、 依然として呼び出し側で対処する必要がある。 この関数の返り値は \fIsrc\fP の長さである。
 これにより、 末尾の切り詰めが行われたかを簡単に検出することができる。 返り値が \fIsize\fP 以上の場合には、 末尾の切り詰めが発生している。
@@ -134,13 +134,13 @@ if (buflen > 0)
 .SH バグ
 \fBstrcpy\fP()  の受け側の文字列が十分な大きさでない場合、何が起こるかわからない。
 固定長文字列を溢れさせるのは、マシンの制御を掌中に収めるために クラッカーが好んで使うテクニックである。
-プログラムでデータをバッファに読み込んだりコピーしたりする場合には、 必ずまず最初に十分な大きさがあるかどうかをチェックする必要がある。
\83\97ã\83­ã\82°ã\83©ã\83 ã\81§ã\83\87ã\83¼ã\82¿ã\82\92ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81«èª­ã\81¿è¾¼ã\82\93ã\81 ã\82\8aã\82³ã\83\94ã\83¼ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå ´å\90\88ã\81«ã\81¯ã\80\81 å¿\85ã\81\9aã\81¾ã\81\9aæ\9c\80å\88\9dã\81«å\8d\81å\88\86ã\81ªå¤§ã\81\8dã\81\95ã\81\8cã\81\82ã\82\8bã\81\8bã\81©ã\81\86ã\81\8bã\82\92ã\83\81ã\82§ã\83\83ã\82¯ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
 プログラマがオーバーフローが不可能だと示せる場合には このチェックは不要かもしれないが、十分注意すること。
 長い間には、不可能だったことが可能になるような方法でプログラムが 変更されることもあるからだ。
 .SH 関連項目
 \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.78 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。