OSDN Git Service

v3.65: Fix typo in gets.3
[linuxjm/LDP_man-pages.git] / release / man3 / gets.3
index 4d5be48..87219b8 100644 (file)
 .\"
 .\" Modified Wed Jul 28 11:12:07 1993 by Rik Faith (faith@cs.unc.edu)
 .\" Modified Fri Sep  8 15:48:13 1995 by Andries Brouwer (aeb@cwi.nl)
+.\" Modified 2013-12-31, David Malcolm <dmalcolm@redhat.com>
+.\"     Split gets(3) into its own page; fgetc() et al. move to fgetc(3)
 .\"*******************************************************************
 .\"
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH GETS 3 2012\-01\-18 GNU "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1997 IMAMURA Nobutaka
+.\"         all rights reserved.
+.\" Translated 1997-02-14, IMAMURA Nobutaka <imamura@spp.hpc.fujitsu.co.jp>
+.\" Updated 1999-08-29, Kentaro Shirakata <argrath@ub32.org>
+.\" Updated 2001-11-02, Kentaro Shirakata <argrath@ub32.org>
+.\" Updated 2005-09-06, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH GETS 3 2014\-01\-24 GNU "Linux Programmer's Manual"
 .SH 名前
-fgetc, fgets, getc, getchar, gets, ungetc \- 文字と文字列の入力
+gets \- 標準入力からの文字列を取得する (非推奨)
 .SH 書式
 .nf
 \fB#include <stdio.h>\fP
 .sp
-\fBint fgetc(FILE *\fP\fIstream\fP\fB);\fP
-
-\fBchar *fgets(char *\fP\fIs\fP\fB, int \fP\fIsize\fP\fB, FILE *\fP\fIstream\fP\fB);\fP
-
-\fBint getc(FILE *\fP\fIstream\fP\fB);\fP
-
-\fBint getchar(void);\fP
-
 \fBchar *gets(char *\fP\fIs\fP\fB);\fP
-
-\fBint ungetc(int \fP\fIc\fP\fB, FILE *\fP\fIstream\fP\fB);\fP
 .fi
 .SH 説明
-\fBfgetc\fP()  は、 \fIstream\fP から次の文字を \fIunsigned char\fP として読み、 \fIint\fP
-にキャストして返す。ファイルの終わりやエラーとなった場合は \fBEOF\fP を返す。
-.PP
-\fBgetc\fP()  は \fBfgetc\fP()  と同様だが、 \fIstream\fP を複数回評価するマクロとして実装されているかもしれない。
-.PP
-\fBgetchar\fP()  は \fBgetc(\fP\fIstdin\fP\fB)\fP と同じである。
-.PP
+\fIこの関数は使用しないこと\fP。
+
 \fBgets\fP()  は、改行文字か \fBEOF\fP までの 1行を \fIstdin\fP から読み込み \fIs\fP が指すバッファに格納する
-(末尾の改行文字や \fBEOF\fP は NULL バイト (\(aq\e0\(aq) に置き換えられる)。 バッファオーバーランのチェックは行われない
+(末尾の改行文字や \fBEOF\fP はヌルバイト (\(aq\e0\(aq) に置き換えられる)。 バッファオーバーランのチェックは行われない
 (下記の「バグ」を参照)。
-.PP
-\fBfgets\fP()  は \fIstream\fP から最大で \fIsize\fP \- 1 個の文字を読み込み、 \fIs\fP が指すバッファに格納する。読み込みは
-\fBEOF\fP または改行文字を読み込んだ後で停止する。 読み込まれた改行文字はバッファに格納される。 終端の NULL バイト
-(\(aq\e0\(aq)  が一つバッファの中の最後の文字の後に書き込まれる。
-.PP
-\fBungetc\fP()  は、後の read 操作で読めるように、 \fIc\fP を \fIunsigned char\fP にキャストして \fIstream\fP
-に書き戻す。 書き戻された文字は逆順に戻される; 書き戻しとして保証されているのは、一文字だけである。
-.PP
-ここで述べた関数や \fIstdio\fP ライブラリの入力関数を同じ入力ストリームに対して互いに混ぜて使うことができる。
-.PP
-これらの処理を停止せずに行いたいときは、 \fBunlocked_stdio\fP(3)  を参照のこと。
 .SH 返り値
-\fBfgetc\fP(), \fBgetc\fP(), \fBgetchar\fP()  は、文字を \fIunsigned char\fP として読んで \fIint\fP
-にキャストして返す。ファイルの終わりやエラーの場合は \fBEOF\fP を返す。
-.PP
-\fBgets\fP()  と \fBfgets\fP()  は、成功すると \fIs\fP を返し、エラーや 1 文字も読み込んでいないのにファイルの終わりになった
-場合に NULL を返す。
-.PP
-\fBungetc\fP()  は成功すると \fIc\fP を返し、エラーの場合は \fBEOF\fP を返す。
+\fBgets\fP() は、成功すると \fIs\fP を返し、エラーや 1 文字も読み込んでいないのにファイルの終わりになった 場合に NULL を返す。
+しかし、バッファの行き過ぎのチェックが行われないため、この関数が返るという保証はない。
 .SH 準拠
 C89, C99, POSIX.1\-2001.
 
 LSB は \fBgets\fP() を非推奨としている。
 POSIX.1\-2008 では \fBgets\fP() に廃止予定の印が付けられている。
 ISO C11 では \fBgets\fP)() の規定が C 言語から削除されている。
-glibc ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.16 ä»¥é\99\8dã\81§ã\81¯ã\80\81æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82·ã\83³ \fB_ISOC11_SOURCE\fP が定義された
+glibc ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.16 ä»¥é\99\8dã\81§ã\81¯ã\80\81æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83­ \fB_ISOC11_SOURCE\fP が定義された
 場合、glibc ヘッダファイルでは \fBgets\fP)() の宣言が公開されない。
 .SH バグ
 \fBgets\fP()  は絶対に使用してはならない。 前もってデータを知ることなしに \fBgets\fP()  が何文字読むかを知ることはできず、
 \fBgets\fP()  がバッファの終わりを越えて書き込み続けるため、 \fBgets\fP()  を使うのは極めて危険である。
 これを利用してコンピュータのセキュリティが破られてきた。 代わりに \fBfgets\fP()  を使うこと。
-.PP
-入力ストリームのファイルディスクリプタに対して、 \fIstdio\fP ライブラリの入力関数と、低レベル呼び出しの \fBread\fP(2)
-を混ぜて呼び出す事は勧められない。 結果がどうなるかは分からず、おそらくあなたの 望んでいる結果にはならないだろう。
+
+詳しい情報については、CWE\-242 (別名 "Use of Inherently Dangerous Function"
+(「本質的に危険な関数を使う」)) を参照。 http://cwe.mitre.org/data/definitions/242.html
+で参照できる。
 .SH 関連項目
-\fBread\fP(2), \fBwrite\fP(2), \fBferror\fP(3), \fBfgetwc\fP(3), \fBfgetws\fP(3),
-\fBfopen\fP(3), \fBfread\fP(3), \fBfseek\fP(3), \fBgetline\fP(3), \fBgetwchar\fP(3),
-\fBputs\fP(3), \fBscanf\fP(3), \fBungetwc\fP(3), \fBunlocked_stdio\fP(3),
-\fBfeature_test_macros\fP(7)
+\fBread\fP(2), \fBwrite\fP(2), \fBferror\fP(3), \fBfgetc\fP(3), \fBfgets\fP(3),
+\fBfgetwc\fP(3), \fBfgetws\fP(3), \fBfopen\fP(3), \fBfread\fP(3), \fBfseek\fP(3),
+\fBgetline\fP(3), \fBgetwchar\fP(3), \fBputs\fP(3), \fBscanf\fP(3), \fBungetwc\fP(3),
+\fBunlocked_stdio\fP(3), \fBfeature_test_macros\fP(7)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。