OSDN Git Service

(split) LDP: Update releases based on LDP 3.52 release
[linuxjm/LDP_man-pages.git] / release / man3 / stdin.3
index e99bc83..1709d26 100644 (file)
 .\" From dholland@burgundy.eecs.harvard.edu Tue Mar 24 18:08:15 1998
 .\"
 .\" This man page was written in 1998 by David A. Holland
-.\" and placed in the Public Domain. Polished a bit by aeb.
-.\" 2005-06-16 mtk, mentioned freopen()
+.\" Polished a bit by aeb.
+.\"
+.\" %%%LICENSE_START(PUBLIC_DOMAIN)
+.\" Placed in the Public Domain.
+.\" %%%LICENSE_END
 .\"
+.\" 2005-06-16 mtk, mentioned freopen()
 .\" 2007-12-08, mtk, Converted from mdoc to man macros
 .\"
-.\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved.
-.\" Translated 1998-03-22, NAKANO Takeo <nakano@apm.seikei.ac.jp>
-.\" Updated 2005-09-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\"*******************************************************************
 .\"
-.TH STDIN 3 2008-07-14 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-stdin, stdout, stderr \- É¸½àÆþ½ÐÎÏ¥¹¥È¥ê¡¼¥à
-.SH ½ñ¼°
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH STDIN 3 2008\-07\-14 Linux "Linux Programmer's Manual"
+.SH 名前
+stdin, stdout, stderr \- 標準入出力ストリーム
+.SH 書式
 .nf
-.B #include <stdio.h>
+\fB#include <stdio.h>\fP
 
-.BI "extern FILE *" stdin ;
-.BI "extern FILE *" stdout ;
-.BI "extern FILE *" stderr ;
+\fBextern FILE *\fP\fIstdin\fP\fB;\fP
+\fBextern FILE *\fP\fIstdout\fP\fB;\fP
+\fBextern FILE *\fP\fIstderr\fP\fB;\fP
 .fi
-.SH ÀâÌÀ
-ɸ½à¤Î´Ä¶­¤Ç¤Ï¡¢ UNIX ¥×¥í¥°¥é¥à¤Ïµ¯Æ°»þ¤Ë¡¢¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥¹¥È¥ê¡¼
-¥à¤ò 3 ¤ÄÍ¿¤¨¤é¤ì¤ë¡£¤½¤ì¤¾¤ìÆþÎÏÍÑ¡¢½ÐÎÏÍÑ¡¢¿ÇÃÇ¥á¥Ã¥»¡¼¥¸¤ä¥¨¥é¡¼¥á¥Ã
-¥»¡¼¥¸¤Îɽ¼¨ÍѤΤâ¤Î¤Ç¤¢¤ë¡£¤³¤ì¤é¤ÏÄ̾ï¥æ¡¼¥¶¤ÎüËö
-.RB ( tty (4)
-¤ò¸«¤è) ¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤¬¡¢¿Æ¥×¥í¥»¥¹¤Ç¤ÎÁªÂò¡¦ÀßÄê¤Ë¤è¤Ã¤Æ¥Õ¥¡¥¤¥ë
-¤ä¾¤Î¥Ç¥Ð¥¤¥¹¤Ë´ØÏ¢¤Å¤±¤é¤ì¤Æ¤¤¤ë¤³¤È¤â¤¢¤ë
-.RB ( sh (1)
-¤Î¡Ö¥ê¥À¥¤¥ì¥¯¥·¥ç¥ó¡×¥»¥¯¥·¥ç¥ó¤â»²¾È¤Î¤³¤È)¡£
-.PP
-ÆþÎÏ¥¹¥È¥ê¡¼¥à¤Ï "standard input" ¤È¸Æ¤Ð¤ì¤ë¡£½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï
-"standard output"¡¢¥¨¥é¡¼¥¹¥È¥ê¡¼¥à¤Ï "standard error" ¤È¸Æ¤Ð¤ì¤ë¡£
-¤³¤ì¤é¤ÎÍѸì¤òû½Ì¤·¤¿¤â¤Î¤¬¤½¤ì¤¾¤ì¤Î¥Õ¥¡¥¤¥ë¤ò¼¨¤¹¥·¥ó¥Ü¥ë¤È¤Ê¤ë¡£¤Ä
-¤Þ¤ê
-.IR stdin ,
-.IR stdout ,
-.I stderr
-¤Ç¤¢¤ë¡£
+.SH 説明
+標準の環境では、 UNIX プログラムは起動時に、オープンされているストリー ムを 3 つ与えられる。それぞれ入力用、出力用、診断メッセージやエラーメッ
+セージの表示用のものである。これらは通常ユーザの端末 (\fBtty\fP(4)  を見よ) に接続されているが、親プロセスでの選択・設定によってファイル
+や他のデバイスに関連づけられていることもある (\fBsh\fP(1)  の「リダイレクション」セクションも参照のこと)。
 .PP
-¤³¤ì¤é¤Î¥·¥ó¥Ü¥ë¤Ï
-.BR stdio (3)
-¤Î¥Þ¥¯¥í¤Ç¡¢ FILE ¤Ø¤Î¥Ý¥¤¥ó¥¿·¿¤Ç¤¢¤ë¡£¤·¤¿¤¬¤Ã¤Æ
-.BR fprintf (3)
-¤ä
-.BR fread (3)
-¤Ê¤É¤Î´Ø¿ô¤È¤È¤â¤ËÍѤ¤¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+入力ストリームは "standard input" と呼ばれる。出力ストリームは "standard output"、エラーストリームは
+"standard error" と呼ばれる。 これらの用語を短縮したものがそれぞれのファイルを示すシンボルとなる。つ まり \fIstdin\fP,
+\fIstdout\fP, \fIstderr\fP である。
+
+これらのシンボルは \fBstdio\fP(3)  のマクロで、 FILE へのポインタ型である。したがって \fBfprintf\fP(3)  や
+\fBfread\fP(3)  などの関数とともに用いることができる。
 .PP
-.I FILE
-¤Ï UNIX ¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ë¥Ð¥Ã¥Õ¥¡µ¡Ç½¤òÄɲä·¤¿¥é¥Ã¥Ñ¡¼
-¤Ç¤¢¤ë¤«¤é¡¢¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ë¤âÂбþ¤¹¤ë¥Õ¥¡¥¤¥ë¤¬¤¢¤ê¡¢ UNIX ¤Î raw ¥Õ¥¡
-¥¤¥ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹
-.RB ( read (2)
-¤ä
-.BR lseek (2)
-¤Ê¤É) ¤Ë¤è¤Ã¤Æ¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
+\fIFILE\fP は UNIX のファイルディスクリプタにバッファ機能を追加したラッパー であるから、これらのマクロにも対応するファイルがあり、 UNIX
+の raw ファ イルインタフェース (\fBread\fP(2)  や \fBlseek\fP(2)  など) によってアクセスすることもできる。
 .PP
-¥×¥í¥°¥é¥à¤Îµ¯Æ°»þ¤Ë¤Ï¡¢
-¥¹¥È¥ê¡¼¥à
-.IR stdin ,
-.IR stdout ,
-.I stderr
-¤Ë·ë¤Ó¤Ä¤±¤é¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÈÖ¹æ¤Ï¡¢
-¤½¤ì¤¾¤ì 0, 1, 2 ¤Ç¤¢¤ë¡£
-¥×¥ê¥×¥í¥»¥Ã¥µ¥·¥ó¥Ü¥ë
-.BR STDIN_FILENO ,
-.BR STDOUT_FILENO ,
-.B STDERR_FILENO
-¤Ï
-.I <unistd.h>
-Ãæ¤Ç¤½¤ì¤¾¤ì¤³¤ì¤é¤ÎÃͤËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
-(¤³¤ì¤é¤Î¥¹¥È¥ê¡¼¥à¤ËÂФ·¤Æ
-.BR freopen (3)
-¤òŬÍѤ¹¤ë¤³¤È¤Ç¡¢¤½¤Î¥¹¥È¥ê¡¼¥à¤Ë´ØÏ¢ÉÕ¤±¤é¤ì¤¿¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿
-¤ÎÈÖ¹æ¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£)
+プログラムの起動時には、 ストリーム \fIstdin\fP, \fIstdout\fP, \fIstderr\fP に結びつけられているファイルディスクリプタの番号は、
+それぞれ 0, 1, 2 である。 プリプロセッサシンボル \fBSTDIN_FILENO\fP, \fBSTDOUT_FILENO\fP,
+\fBSTDERR_FILENO\fP は \fI<unistd.h>\fP 中でそれぞれこれらの値に定義されている。 (これらのストリームに対して
+\fBfreopen\fP(3)  を適用することで、そのストリームに関連付けられたファイルディスクリプタ の番号を変更することができる。)
 .PP
-.I FILE
-¤È raw ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÎÊ»ÍѤϡ¢Í½´ü¤Ç¤­¤Ê¤¤·ë²Ì¤òÀ¸¤¸
-¤ë¤³¤È¤¬¤¢¤ë¤Î¤Ç¡¢Ä̾ï¤ÏÈò¤±¤ë¤Ù¤­¤Ç¤¢¤ë¡£ (¥Þ¥¾¥Ò¥¹¥Æ¥£¥Ã¥¯¤Ê¿Í¤Ë:
-POSIX.1 ¤Î¥»¥¯¥·¥ç¥ó 8.2.3 ¤Ë¤Ï¡¢¤³¤Îº®ÍѤÇÆ°ºî¤¬¤É¤Î¤è¤¦¤Ë¤Ê¤ê¤½¤¦
-¤«¤¬¾Ü¤·¤¯µ­½Ò¤µ¤ì¤Æ¤¤¤ë¡£)
-°ìÈÌŪ¤Ê¥ë¡¼¥ë¤Ï°Ê²¼¤ÎÄ̤ê: ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ
-°·¤ï¤ì¡¢ stdio ¤Ïñ¤Ë¥é¥¤¥Ö¥é¥ê¤Ë¤è¤Ã¤Æ°·¤ï¤ì¤ë¤Î¤Ç¤¢¤ë¡£¤¹¤Ê¤ï¤ÁÎ㤨¤Ð
-.BR exec (3)
-¤Î¸å¤Ë¤Ï¡¢»Ò¥×¥í¥»¥¹¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿
-¤ò¤¹¤Ù¤Æ·Ñ¾µ¤¹¤ë¤¬¡¢¿Æ¤«¤é¤Î¥¹¥È¥ê¡¼¥à¤Ï¤¹¤Ù¤Æ¥¢¥¯¥»¥¹ÉԲĤȤʤ롣
+\fIFILE\fP と raw なファイルディスクリプタの併用は、予期できない結果を生じ ることがあるので、通常は避けるべきである。
+(マゾヒスティックな人に: POSIX.1 のセクション 8.2.3 には、この混用で動作がどのようになりそう かが詳しく記述されている。)
+一般的なルールは以下の通り: ファイルディスクリプタはカーネルによって 扱われ、 stdio は単にライブラリによって扱われるのである。すなわち例えば
+\fBexec\fP(3)  の後には、子プロセスはオープンされているファイルディスクリプタ
+をすべて継承するが、親からのストリームはすべてアクセス不可となる。
 .PP
-¥·¥ó¥Ü¥ë
-.IR stdin ,
-.IR stdout ,
-.I stderr
-¤Ï¤¹¤Ù¤Æ¥Þ¥¯¥í¤È¤·¤ÆÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢¤³¤ì¤é¤Ø¤ÎÂåÆþ
-¤Ï°Ü¿¢À­¤òÊݾڤµ¤ì¤Ê¤¤¡£É¸½à¥¹¥È¥ê¡¼¥à¤Ï¥é¥¤¥Ö¥é¥ê´Ø¿ô
-.BR freopen (3)
-¤òÍѤ¤¤ì¤Ð¡¢Ê̤Υե¡¥¤¥ë¤ò¼¨¤¹¤è¤¦¤ËÊѹ¹¤¹¤ë¤³¤È¤â¤Ç¤­¤ë¡£
-¤³¤Î¥é¥¤¥Ö¥é¥ê´Ø¿ô¤Ï
-.IR stdin ,
-.IR stdout ,
-.I stderr
-¤ÎºÆ³ä¤êÅö¤Æ¤¬²Äǽ¤Ê¤è¤¦¤ËÆÃÊ̤ËƳÆþ¤µ¤ì¤¿¤â¤Î¤Ç¤¢¤ë¡£
-ɸ½à¥¹¥È¥ê¡¼¥à¤Ï
-.BR exit (3)
-¤Î¸Æ¤Ó½Ð¤·¤È¡¢¥×¥í¥°¥é¥à¤ÎÀµ¾ï½ªÎ»¤Ë¤è¤Ã¤Æ¥¯¥í¡¼¥º¤µ¤ì¤ë¡£
-.SH ½àµò
-.IR stdin ,
-.IR stdout ,
-.I stderr
-¥Þ¥¯¥í¤Ï C89 ¤Ë½àµò¤·¤Æ¤¤¤ë¡£
-¤Þ¤¿ C89 ¤Ç¤Ï¡¢¤³¤ì¤é 3 ¤Ä¤Î¥¹¥È¥ê¡¼¥à¤¬¥×¥í¥°¥é¥à
-¤Îµ¯Æ°»þ¤Ë¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤Ù¤­¤Ç¤¢¤ë¤³¤È¤¬µ¬Äꤵ¤ì¤Æ¤¤¤ë¡£
-.SH Ãí°Õ
-.I stderr
-¥¹¥È¥ê¡¼¥à¤Ï¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
-.I stdout
-¥¹¥È¥ê¡¼¥à¤Ï¡¢Ã¼Ëö¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ë¤Ï¹Ôñ°Ì¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°
-¤µ¤ì¤Æ¤¤¤ë¡£°ì¹Ô¤ËËþ¤¿¤Ê¤¤ÆâÍƤϡ¢
-.BR fflush (3)
-¤«
-.BR exit (3)
-¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤«¡¢²þ¹Ôʸ»ú¤¬°õ»ú¤µ¤ì¤ë¤Þ¤Çɽ¼¨¤µ¤ì¤Ê¤¤¡£¤³¤ì¤Ï¡¢
-Æä˥ǥХå°»þ¤Ë¤ª¤¤¤Æ¡¢Í½´ü¤·¤Ê¤¤·ë²Ì¤òÀ¸¤¸¤ë¸¶°ø¤È¤Ê¤ë¤«¤â¤·¤ì¤Ê¤¤¡£
-ɸ½à¥¹¥È¥ê¡¼¥à¤Î (¤¢¤ë¤¤¤Ï¾¤Î¤¹¤Ù¤Æ¤Î¥¹¥È¥ê¡¼¥à¤Î)
-¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¥â¡¼¥É¤Ï¡¢
-.BR setbuf (3)
-¤Þ¤¿¤Ï
-.BR setvbuf (3)
-¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ë¤è¤Ã¤ÆÊѹ¹¤Ç¤­¤ë¡£
-¤¿¤À¤·¡¢
-.I stdin
-¤¬Ã¼Ëö¤ËÀܳ¤µ¤ì¤Æ¤¤¤ë¤È¤­¤Ï¡¢Ã¼Ëö¤Î¥É¥é¥¤¥Ð¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë
-²ÄǽÀ­¤¬¤¢¤ëÅÀ¤Ë¤âÃí°Õ¤¹¤ë¤³¤È¡£¤³¤ì¤Ï stdio ¤Î¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤È¤ÏÁ´¤¯
-´Ø·¸¤Ê¤¯Â¸ºß¤·¤¦¤ë¡£ (¼ÂºÝ¡¢Ä̾ï¤À¤ÈüËöÆþÎϤϥ«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¹Ôñ°Ì
-¤Ç¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤µ¤ì¤Æ¤¤¤ë¡£) ¤³¤Î¥«¡¼¥Í¥ë¤Ë¤è¤ëÆþÎϤΰ·¤¤¤Ï
-.BR tcsetattr (3)
-¤Ê¤É¤Î¸Æ¤Ó½Ð¤·¤Ë¤è¤Ã¤ÆÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-.BR stty (1)
-¤È
-.BR termios (3)
-¤â»²¾È¤¹¤ë¤³¤È¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR csh (1),
-.BR sh (1),
-.BR open (2),
-.BR fopen (3),
-.BR stdio (3)
+シンボル \fIstdin\fP, \fIstdout\fP, \fIstderr\fP はすべてマクロとして定義されているので、これらへの代入
+は移植性を保証されない。標準ストリームはライブラリ関数 \fBfreopen\fP(3)  を用いれば、別のファイルを示すように変更することもできる。
+このライブラリ関数は \fIstdin\fP, \fIstdout\fP, \fIstderr\fP の再割り当てが可能なように特別に導入されたものである。
+標準ストリームは \fBexit\fP(3)  の呼び出しと、プログラムの正常終了によってクローズされる。
+.SH 準拠
+\fIstdin\fP, \fIstdout\fP, \fIstderr\fP マクロは C89 に準拠している。 また C89 では、これら 3
+つのストリームがプログラム の起動時にオープンされているべきであることが規定されている。
+.SH 注意
+\fIstderr\fP ストリームはバッファリングされていない。 \fIstdout\fP ストリームは、端末に接続されているときには行単位でバッファリング
+されている。一行に満たない内容は、 \fBfflush\fP(3)  か \fBexit\fP(3)
+が呼び出されるか、改行文字が印字されるまで表示されない。これは、 特にデバッグ時において、予期しない結果を生じる原因となるかもしれない。
+標準ストリームの (あるいは他のすべてのストリームの)  バッファリングモードは、 \fBsetbuf\fP(3)  または \fBsetvbuf\fP(3)
+を呼び出すことによって変更できる。 ただし、 \fIstdin\fP が端末に接続されているときは、端末のドライバでバッファリングされている
+可能性がある点にも注意すること。これは stdio のバッファリングとは全く 関係なく存在しうる。 (実際、通常だと端末入力はカーネルによって行単位
+でバッファリングされている。) このカーネルによる入力の扱いは \fBtcsetattr\fP(3)  などの呼び出しによって変更することができる。
+\fBstty\fP(1)  と \fBtermios\fP(3)  も参照すること。
+.SH 関連項目
+\fBcsh\fP(1), \fBsh\fP(1), \fBopen\fP(2), \fBfopen\fP(3), \fBstdio\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.52 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。