- 締切済み
ストリームって?
プログラミングの超初心者なのですが、現在Cの勉強をしています。1つ分からない言葉があるのですが、「ストリーム」について教えてください。例えば「ファイルストリーム」「標準エラー出力ストリーム」「標準入力ストリーム」などです。この「ストリーム」という動作はどういった動作をさすのか教えていただければ幸いです。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- m_ino
- ベストアンサー率0% (0/0)
C言語の世界では、プログラムとファイルの間のデータの流れの経路のことをストリームと言います。(C言語辞典より) プログラムでファイルを開くと、ファイルとプログラムはストリームで結ばれて、その 経路をデータが行き来(入出力)されるわけです。逆に言うと、ストリームを介さないと、データの入出力はできません。 プログラムから見ると、データを必要とする場合は、ファイルでは無く、ストリーム からデータをもらいますし、データを出力するときは、ストリームにデータを送る訳です。 -------------------------- プログラム ← [データ] → ファイル -------------------------- ストリーム(経路) なお、標準入力、標準出力、標準エラー出力ストリームは、実際はファイルでは無く、キーボードや画面だったりしますが、C言語ではそれらもファイルと同じ様に扱われます。 ・標準入力ストリーム 基本的にキーボードからの入力(入力専用のストリーム) ・標準出力ストリーム 基本的に画面への出力 (出力専用のストリーム) ・標準エラー出力ストリーム 基本的に画面への出力 (出力専用のストリーム) ※ 通常の出力と、エラー出力を区別するために2種類用意されています。 ※ これらのストリームはファイルと違い、プログラムが動作する時点で 開いているので、原則としてファイルオープン、クローズ等は意識し なくても使用できます。 理解しにくいところがありましたら、すみません。
- 参考URL:
- ANSI C言語辞典
ストリームという単語そのものは「流れ」という意味で、データの流れを川の流れに例えてあるのです。 たとえば、川に木材を流して下流に届けることを考えてみます。川がストリーム、上流はあなたのプログラム、下流はファイルや標準出力などです。 あなたは、自由自在に木材を川に流すことができますが、川の流れを途中で制御することはできません。また、相手も木材を受け取ることはできますが、同じことが言えるわけです。 このようにただ、垂れ流し的にデータを流すような構造を「ストリーム」と呼びます。 ファイルストリームは相手がファイルになるもの、標準ストリームは相手がコンソール(画面とキーボードを合わせた言い方)です。 また、出力の場合、自分がデータを流すわけですから相手は下流におり、入力の場合は相手が上流にいてあなたは上流からデータを流します。 なお標準エラー出力ストリームとは、エラーを専門に扱い、かつ出力専用の標準ストリームのことです。 説明がわかりにくかったら補足にそう書いていただきたいと思います(^^;゚。
補足
御礼が遅れてしまい申し訳ありません。 たいへんわかりやすい説明をしていただいて、本当にありがとうございます。 さすが関係者はちがう!っていう感じで、よく理解できました。 これからもプログラムについていろいろ質問するかもしれませんが、 そのときはまたよろしくお願いします。