![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.2ベストアンサー
- 回答日時:
★ファイル・ストリームに限定してお話します。
・まず、ファイル・システムを少しだけお話します。
・1つのファイルは複数のクラスタという部屋にデータを保存(記録)します。
そして、それぞれのクラスタを鎖のように繋いで1つのファイル・データとして Windows は
管理して扱います。→サイズが小さいファイルは1クラスタですが、大きいファイルは複数の
クラスタに分けられる。そして、鎖のように繋げて管理します。
・それでプログラムがファイルを読み出すときは、1つのファイルとして Windows からデータを
読める構造にしたのが『ストリーム』です。アプリケーションからは複数あるクラスタの繋ぎ
情報をたどって読み込まなくて済みます。→とても便利です。
・この『ストリーム』とは、ファイルの先頭から末尾までを連続するデータの塊として扱い、
英単語では『stream』で、意味は『流れ』です。つまり、ファイルの先頭から末尾までの一連
の流れを『ストリーム』で表現して扱うという事です。
・『ストリーム』には入力と出力があり、それぞれ『入力ストリーム』、『出力ストリーム』など
と表現をすることがあります。また、ファイル・ストリームにおいては、ファイルを読み込みで
オープンした『ファイル・ポインタ』が『入力ストリーム』、書き込みでオープンした場合は、
『出力ストリーム』にあたります。→読み書き両用でオープンすれば『入出力ストリーム』という
事になります。
・この『ストリーム』は任意の時点で別のデバイス(装置)に切り替えられたりします。
このとき、stdin とか、stdout とか、stderr などが関わってくるのです。
・コマンドラインで『入力ストリーム』が『stdin』の場合は、通常『キーボード』ですが、パイプ
処理ならば『画面の出力結果』に、リダイレクトされると『ファイル入力』に切り替わります。
・つまり、stdin を使うと任意の時点で別の入力に切り替わって、後は『ストリーム』という概念
でデータの先頭から末尾までを処理することになります。
・stdout は『出力ストリーム』ですが、こちらも状況によって『画面出力』か、『ファイル出力』
に切り替わります。
・stderr は『出力ストリーム』ですが、『画面出力固定』です。→エラーを出力するときに使います。
最後に:
・stdin は『標準入力』で、キーボードとファイル入力などに切り替わります。
・stdout は『標準出力』で、ディスプレイとファイル出力などに切り替わります。
・stderr は『標準エラー出力』で、ディスプレイ固定になります。
・以上。おわり。→簡単に言えば『ストリーム』とは『データの先頭から末尾の流れ』です。
No.1
- 回答日時:
適当な説明
プログラムはそれ単体では何の役にも立たず、外界との接点を持たねばならない。
外界とはすなわち入力ファイルであったり、出力ファイルであったり、コンソールの画面であったり、はたまたプリンタであったり。
プログラムでいちいち今回はプリンタに出力するから○○、コンソールからの入力を受け付けるので△△。。。と書くのが面倒くさい。
というわけで、プログラムと外界との入出力インターフェースを抽象化して利用できるようになっています。それがストリーム。
なので、あるときはコンソールからの入力を stdin から受け取ったり、またあるときはファイルへの出力をファイルストリームに対して行ったりします。でも、プログラムでの使い方はほとんど一緒。こりゃ便利、普段は細かい実装はカーネルにお任せ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Wi-Fi・無線LAN 「無線LAN親機(4ストリーム)」「無線LAN中継機(2ストリーム)」の組み合わせは大丈夫ですか? 3 2023/07/28 19:10
- ルーター・ネットワーク機器 無線LAN親機の電波強度について 8 2023/08/18 18:57
- その他(言語学・言語) ノルドストリームって何語なんですか? 3 2022/07/12 16:10
- 中古車 ウィッシュとストリーム、人気で中古車の高いのはどちらですか? 3 2022/08/15 10:13
- 建設業・製造業 日本は住宅も街も道路も都市計画も終わっていますよね 9 2022/12/01 06:00
- 関東 「渋谷ストリーム」建設前には何がありましたか? 東急線の高架下でトラックが荷下ろしをしているのですが 1 2022/04/29 21:54
- カスタマイズ(車) 車の配線 ポジションランプの+- 3 2023/02/25 10:18
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- その他(スマートフォン・携帯電話・VR) 5GとWiFiについて 6 2022/06/20 05:13
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Acccess レポートをグループ別...
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
テキストの各行に行番号をつけ...
-
文字列の出力で
-
外国語とCSVについて
-
pLaTeX の EPSファイル読み込み...
-
fflush()、setbuf()について
-
(VBA)書式が変更されてしまい...
-
MATLABのCSV形式での書き込みに...
-
AccessVBA複数レポート条件毎に...
-
VBSでEXCEL⇒CSV変換で日付の書...
-
標準出力とファイルに効率的に...
-
構造体のファイル出力
-
二次元配列をクリップボードに...
-
windowsでテキストファイルの比...
-
ストリームについて
-
コマンドプロンプトとリダイレ...
-
ファイル出力の場所を指定
-
ファイルの文字コードをUTF-8に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
Acccess レポートをグループ別...
-
ファイル出力の場所を指定
-
ファイル形式またはファイル拡...
-
シェルコマンドの 2>&1 とはど...
-
Wordマクロで指定したフォルダ...
-
テキストファイルに改行コード...
-
fwprintf()について
-
二次元配列をクリップボードに...
-
外国語とCSVについて
-
ファイルの文字コードをUTF-8に...
-
csvファイルでの出力について
-
C言語での印刷方法
-
(VBA)書式が変更されてしまい...
-
フォルダにあるPDF情報の抽出(VBA)
-
C言語での縦方向のファイル出力...
-
CSVファイルを任意の場所に出力...
-
標準出力とファイルに効率的に...
-
CreateProcess関数と実行後の戻...
おすすめ情報