other versions
other languages
other sections
STDIN(3) | Linux Programmer's Manual | STDIN(3) |
名前¶
stdin, stdout, stderr - 標準入出力ストリーム書式¶
#include <stdio.h> extern FILE *stdin; extern FILE *stdout; extern FILE *stderr;
説明¶
標準の環境では、 UNIX プログラムは起動時に、オープンされているストリー ムを 3 つ与えられる。それぞれ入力用、出力用、診断メッセージやエラーメッ セージの表示用のものである。これらは通常ユーザの端末 ( tty(4) を見よ) に接続されているが、親プロセスでの選択・設定によってファイル や他のデバイスに関連づけられていることもある ( sh(1) の「リダイレクション」セクションも参照のこと)。 入力ストリームは "standard input" と呼ばれる。出力ストリームは "standard output"、エラーストリームは "standard error" と呼ばれる。 これらの用語を短縮したものがそれぞれのファイルを示すシンボルとなる。つ まり stdin, stdout, stderr である。準拠¶
stdin, stdout, stderr マクロは C89 に準拠している。 また C89 では、これら 3 つのストリームがプログラム の起動時にオープンされているべきであることが規定されている。注意¶
stderr ストリームはバッファリングされていない。 stdout ストリームは、端末に接続されているときには行単位でバッファリング されている。一行に満たない内容は、 fflush(3) か exit(3) が呼び出されるか、改行文字が印字されるまで表示されない。これは、 特にデバッグ時において、予期しない結果を生じる原因となるかもしれない。 標準ストリームの (あるいは他のすべてのストリームの) バッファリングモードは、 setbuf(3) または setvbuf(3) を呼び出すことによって変更できる。 ただし、 stdin が端末に接続されているときは、端末のドライバでバッファリングされている 可能性がある点にも注意すること。これは stdio のバッファリングとは全く 関係なく存在しうる。 (実際、通常だと端末入力はカーネルによって行単位 でバッファリングされている。) このカーネルによる入力の扱いは tcsetattr(3) などの呼び出しによって変更することができる。 stty(1) と termios(3) も参照すること。関連項目¶
csh(1), sh(1), open(2), fopen(3), stdio(3)この文書について¶
この man ページは Linux man-pages プロジェクトのリリース 3.41 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2008-07-14 | Linux |