OSDN Git Service

(split) Convert release and draft pages to UTF-8.
[linuxjm/LDP_man-pages.git] / release / man3 / gets.3
index 1154ee6..b108a11 100644 (file)
@@ -30,9 +30,9 @@
 .\" Updated 2005-09-06, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\"
 .TH GETS 3  2011-09-28 "GNU" "Linux Programmer's Manual"
-.SH Ì¾Á°
-fgetc, fgets, getc, getchar, gets, ungetc \- Ê¸»ú¤Èʸ»úÎó¤ÎÆþÎÏ
-.SH ½ñ¼°
+.SH 名前
+fgetc, fgets, getc, getchar, gets, ungetc \- 文字と文字列の入力
+.SH 書式
 .nf
 .B #include <stdio.h>
 .sp
@@ -48,132 +48,132 @@ fgetc, fgets, getc, getchar, gets, ungetc \- ʸ
 
 .BI "int ungetc(int " c ", FILE *" stream );
 .fi
-.SH ÀâÌÀ
+.SH 説明
 .BR fgetc ()
-¤Ï¡¢
+は、
 .I stream
-¤«¤é¼¡¤Îʸ»ú¤ò
+から次の文字を
 .I unsigned char
-¤È¤·¤ÆÆɤߡ¢
+として読み、
 .I int
-¤Ë¥­¥ã¥¹¥È¤·¤ÆÊÖ¤¹¡£¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤ä¥¨¥é¡¼¤È¤Ê¤Ã¤¿¾ì¹ç¤Ï
+にキャストして返す。ファイルの終わりやエラーとなった場合は
 .B EOF
-¤òÊÖ¤¹¡£
+を返す。
 .PP
 .BR getc ()
-¤Ï
+は
 .BR fgetc ()
-¤ÈƱÍͤÀ¤¬¡¢
+と同様だが、
 .I stream
-¤òÊ£¿ô²óɾ²Á¤¹¤ë¥Þ¥¯¥í¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
+を複数回評価するマクロとして実装されているかもしれない。
 .PP
 .BR getchar ()
-¤Ï
+は
 .BI "getc(" stdin ) \fR
-¤ÈƱ¤¸¤Ç¤¢¤ë¡£
+と同じである。
 .PP
 .BR gets ()
-¤Ï¡¢²þ¹Ôʸ»ú¤«
+は、改行文字か
 .B EOF
-¤Þ¤Ç¤Î 1¹Ô¤ò
+までの 1行を
 .I stdin
-¤«¤éÆɤ߹þ¤ß
+から読み込み
 .I s
-¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë
-(ËöÈø¤Î²þ¹Ôʸ»ú¤ä
+が指すバッファに格納する
+(末尾の改行文字や
 .B EOF
-¤Ï NULL ¥Ð¥¤¥È (\(aq\e0\(aq) ¤ËÃÖ¤­´¹¤¨¤é¤ì¤ë)¡£
-¥Ð¥Ã¥Õ¥¡¡¦¥ª¡¼¥Ð¡¼¥é¥ó¤Î¥Á¥§¥Ã¥¯¤Ï¹Ô¤ï¤ì¤Ê¤¤ (²¼µ­¤Î¡Ö¥Ð¥°¡×¤ò»²¾È)¡£
+は NULL バイト (\(aq\e0\(aq) に置き換えられる)。
+バッファ・オーバーランのチェックは行われない (下記の「バグ」を参照)。
 .PP
 .BR fgets ()
-¤Ï
+は
 .I stream
-¤«¤éºÇÂç¤Ç
+から最大で
 .IR size " - 1"
-¸Ä¤Îʸ»ú¤òÆɤ߹þ¤ß¡¢
+個の文字を読み込み、
 .I s
-¤¬»Ø¤¹¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤¹¤ë¡£Æɤ߹þ¤ß¤Ï
+が指すバッファに格納する。読み込みは
 .B EOF
-¤Þ¤¿¤Ï²þ¹Ôʸ»ú¤òÆɤ߹þ¤ó¤À¸å¤ÇÄä»ß¤¹¤ë¡£
-Æɤ߹þ¤Þ¤ì¤¿²þ¹Ôʸ»ú¤Ï¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£
-½ªÃ¼¤Î NULL ¥Ð¥¤¥È (\(aq\e0\(aq)
-¤¬°ì¤Ä¥Ð¥Ã¥Õ¥¡¤ÎÃæ¤ÎºÇ¸å¤Îʸ»ú¤Î¸å¤Ë½ñ¤­¹þ¤Þ¤ì¤ë¡£
+または改行文字を読み込んだ後で停止する。
+読み込まれた改行文字はバッファに格納される。
+終端の NULL バイト (\(aq\e0\(aq)
+が一つバッファの中の最後の文字の後に書き込まれる。
 .PP
 .BR ungetc ()
-¤Ï¡¢¸å¤Î read Áàºî¤ÇÆɤá¤ë¤è¤¦¤Ë¡¢
+は、後の read 操作で読めるように、
 .I c
-¤ò
+を
 .I "unsigned char"
-¤Ë¥­¥ã¥¹¥È¤·¤Æ
+にキャストして
 .I stream
-¤Ë½ñ¤­Ì᤹¡£
-½ñ¤­Ìᤵ¤ì¤¿Ê¸»ú¤ÏµÕ½ç¤ËÌᤵ¤ì¤ë;
-½ñ¤­Ìᤷ¤È¤·¤ÆÊݾڤµ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢°ìʸ»ú¤À¤±¤Ç¤¢¤ë¡£
+に書き戻す。
+書き戻された文字は逆順に戻される;
+書き戻しとして保証されているのは、一文字だけである。
 .PP
-¤³¤³¤Ç½Ò¤Ù¤¿´Ø¿ô¤ä
+ここで述べた関数や
 .I stdio
-¥é¥¤¥Ö¥é¥ê¤ÎÆþÎÏ´Ø¿ô¤òƱ¤¸ÆþÎÏ¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ¸ß¤¤¤Ëº®¤¼¤Æ»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
+ライブラリの入力関数を同じ入力ストリームに対して互いに混ぜて使うことができる。
 .PP
-¤³¤ì¤é¤Î½èÍý¤ò¥í¥Ã¥¯¤»¤º¤Ë¹Ô¤¤¤¿¤¤¤È¤­¤Ï¡¢
+これらの処理をロックせずに行いたいときは、
 .BR unlocked_stdio (3)
-¤ò»²¾È¤Î¤³¤È¡£
-.SH ÊÖ¤êÃÍ
+を参照のこと。
+.SH 返り値
 .BR fgetc (),
 .BR getc (),
 .BR getchar ()
-¤Ï¡¢Ê¸»ú¤ò
+は、文字を
 .I unsigned char
-¤È¤·¤ÆÆɤó¤Ç
+として読んで
 .I int
-¤Ë¥­¥ã¥¹¥È¤·¤ÆÊÖ¤¹¡£¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤ä¥¨¥é¡¼¤Î¾ì¹ç¤Ï
+にキャストして返す。ファイルの終わりやエラーの場合は
 .B EOF
-¤òÊÖ¤¹¡£
+を返す。
 .PP
 .BR gets ()
-¤È
+と
 .BR fgets ()
-¤Ï¡¢À®¸ù¤¹¤ë¤È
+は、成功すると
 .I s
-¤òÊÖ¤·¡¢¥¨¥é¡¼¤ä 1 Ê¸»ú¤âÆɤ߹þ¤ó¤Ç¤¤¤Ê¤¤¤Î¤Ë¥Õ¥¡¥¤¥ë¤Î½ª¤ï¤ê¤Ë¤Ê¤Ã¤¿
-¾ì¹ç¤Ë NULL ¤òÊÖ¤¹¡£
+を返し、エラーや 1 文字も読み込んでいないのにファイルの終わりになった
+場合に NULL を返す。
 .PP
 .BR ungetc ()
-¤ÏÀ®¸ù¤¹¤ë¤È
+は成功すると
 .I c
-¤òÊÖ¤·¡¢¥¨¥é¡¼¤Î¾ì¹ç¤Ï
+を返し、エラーの場合は
 .B EOF
-¤òÊÖ¤¹¡£
-.SH ½àµò
+を返す。
+.SH 準拠
 C89, C99, POSIX.1-2001.
-LSB ¤Ç¤Ï
+LSB では
 .BR gets ()
-¤ÏÈó¿ä¾©¤Ç¤¢¤ë¡£
-POSIX.1-2008 ¤Ç¤Ï
+は非推奨である。
+POSIX.1-2008 では
 .BR gets ()
-¤ÏÇÑ»ßͽÄê¤Ç¤¢¤ë¤È¤µ¤ì¤Æ¤¤¤ë¡£
-.SH ¥Ð¥°
+は廃止予定であるとされている。
+.SH ã\83\90ã\82°
 .BR gets ()
-¤ÏÀäÂФ˻ÈÍѤ·¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
-Á°¤â¤Ã¤Æ¥Ç¡¼¥¿¤òÃΤ뤳¤È¤Ê¤·¤Ë
+は絶対に使用してはならない。
+前もってデータを知ることなしに
 .BR gets ()
-¤¬²¿Ê¸»úÆɤफ¤òÃΤ뤳¤È¤Ï¤Ç¤­¤º¡¢
+が何文字読むかを知ることはできず、
 .BR gets ()
-¤¬¥Ð¥Ã¥Õ¥¡¤Î½ª¤ï¤ê¤ò±Û¤¨¤Æ½ñ¤­¹þ¤ß³¤±¤ë¤¿¤á¡¢
+がバッファの終わりを越えて書き込み続けるため、
 .BR gets ()
-¤ò»È¤¦¤Î¤Ï¶Ë¤á¤Æ´í¸±¤Ç¤¢¤ë¡£
-¤³¤ì¤òÍøÍѤ·¤Æ¥³¥ó¥Ô¥å¡¼¥¿¤Î¥»¥­¥å¥ê¥Æ¥£¤¬Çˤé¤ì¤Æ¤­¤¿¡£
-Âå¤ï¤ê¤Ë
+を使うのは極めて危険である。
+これを利用してコンピュータのセキュリティが破られてきた。
+代わりに
 .BR fgets ()
-¤ò»È¤¦¤³¤È¡£
+を使うこと。
 .PP
-ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ¡¢
+入力ストリームのファイルディスクリプタに対して、
 .I stdio
-¥é¥¤¥Ö¥é¥ê¤ÎÆþÎÏ´Ø¿ô¤È¡¢Äã¥ì¥Ù¥ë¸Æ¤Ó½Ð¤·¤Î
+ライブラリの入力関数と、低レベル呼び出しの
 .BR read (2)
-¤òº®¤¼¤Æ¸Æ¤Ó½Ð¤¹»ö¤Ï´«¤á¤é¤ì¤Ê¤¤¡£
-·ë²Ì¤¬¤É¤¦¤Ê¤ë¤«¤Ïʬ¤«¤é¤º¡¢¤ª¤½¤é¤¯¤¢¤Ê¤¿¤Î
-˾¤ó¤Ç¤¤¤ë·ë²Ì¤Ë¤Ï¤Ê¤é¤Ê¤¤¤À¤í¤¦¡£
-.SH ´ØÏ¢¹àÌÜ
+を混ぜて呼び出す事は勧められない。
+結果がどうなるかは分からず、おそらくあなたの
+望んでいる結果にはならないだろう。
+.SH 関連項目
 .BR read (2),
 .BR write (2),
 .BR ferror (3),