OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

ストリームについて

  • 暇なときにでも
  • 質問No.101682
  • 閲覧数99
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 27% (43/159)

ファイルの入出力を勉強しているのですが、「ストリーム」
についての説明がうまく理解できません。
どなたか上手に説明できる人はいませんか。
よろしくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル12

ベストアンサー率 75% (398/526)

 まず「STREAM=(FILE *)型の変数」というのは、明らかに誤解ですので補足しておきます。

 さて「シーケンシャル」についてですが、これは「順次的な」という意味で、「sequential access(順次アクセス)」「sequential logic(順序論理)」など、コンピュータ関連でも様々なところで使われています。

 また「シーケンシャルアクセス」とは「ファイルの先頭から順に連続的にアクセスする方法」で、通常のテキストファイルなどではこの方法でファイルアクセスを行います。

 これに対し「ランダムアクセス」とは「ファイル内の任意の場所をとびとびにアクセスする方法」で、対象となるファイルは、固定長のレコード構造を持っている必要があります。
 C/C++では、構造体配列をバイナリ形式でファイルに記録する場合に、ランダムアクセスが利用できます。

 次に「コスト」についてですが、ここでは「ランダムアクセスをすると極端に性能が低下する」という意味で使っています。もちろん、高度な技術によって性能をカバーすることが出来たとしても、その技術開発に多大なコスト(ここでは時間や人件費を指す)がかかってしまうことは言うまでもありませんね。
お礼コメント
saruno

お礼率 27% (43/159)

ご丁寧なご解答ありがとうございました。
おかげさまで理解することができました。
投稿日時 - 2001-07-12 11:45:34
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル6

ベストアンサー率 75% (3/4)

英辞朗によると「STREAM=流れ」だそうです プログラムの世界で言うSTREAMとは 「データの流れ」そのものを抽象化して言うのではないでしょうか・・・って変な言い方ですね 正確かどうかはわかりませんが STREAM=(FILE *)型の変数 と考えて良いのではないでしょうか stdioやstdout,stderrも(FILE *)でストリームです (UNIXではファイルハンドルと称してi ...続きを読む
英辞朗によると「STREAM=流れ」だそうです
プログラムの世界で言うSTREAMとは
「データの流れ」そのものを抽象化して言うのではないでしょうか・・・って変な言い方ですね
正確かどうかはわかりませんが
STREAM=(FILE *)型の変数
と考えて良いのではないでしょうか
stdioやstdout,stderrも(FILE *)でストリームです
(UNIXではファイルハンドルと称してintを用いますが
その番号はストリーム配列の添字でしょうから
結局は同じでしょう)
・・・
よけい分かりにくくなったら御免なさい・・・m(_ _)m
回答の的をはずしている様でしたら補足要求を下さい
できる限り補足いたします
補足コメント
saruno

お礼率 27% (43/159)

ありがとうございます。
(FILE *)と言うことはファイルポインタと言うことでしょうか?
しつこくて申し訳ありませんが、お願いいたします。
投稿日時 - 2001-07-11 13:47:58
  • 回答No.2
レベル12

ベストアンサー率 75% (398/526)

 「ストリーム」とは、シーケンシャルにしかアクセスできないデータのことを指します。 (厳密には、ランダムアクセスできても非常にコストが高いものも含みます。)  例えば、標準入出力は一切ランダムアクセスができないので、ストリームの代表格みたいなものです。  また磁気テープを扱うテープドライブは、ランダムアクセスできなくはないが非常にコストが高いため、ストリームデバイスと呼ばれます。(テープドライブ ...続きを読む
 「ストリーム」とは、シーケンシャルにしかアクセスできないデータのことを指します。
(厳密には、ランダムアクセスできても非常にコストが高いものも含みます。)

 例えば、標準入出力は一切ランダムアクセスができないので、ストリームの代表格みたいなものです。
 また磁気テープを扱うテープドライブは、ランダムアクセスできなくはないが非常にコストが高いため、ストリームデバイスと呼ばれます。(テープドライブは、テープストリーマとも呼ばれます。)
補足コメント
saruno

お礼率 27% (43/159)

ありがとうございます。なんとなく分かってきました。
申し訳ありませんが、もう少し質問をしてよろしいでしょうか。
「シーケンシャル」とは一体どういう意味なのでしょうか?
 「コスト」とありますが、この語句は単純に「費用」と理解してよいのでしょうか?それとも「メモリがくう」などのほかの意味を含んでいるのでしょうか?
よろしくお願いいたします。
投稿日時 - 2001-07-11 13:36:03
  • 回答No.4
レベル6

ベストアンサー率 75% (3/4)

leaz024氏がご指摘の通りです STREAM=(FILE *)は間違いです ただ私がCを勉強している時に読んだ本では STREAM=(FILE *)と置き換えて読むと すんなり理解できたもので・・・つい ごめんなさい・・・ あと補足すると宣言したので 恐縮ですが補足させていただきます > (FILE *)と言うことはファイルポインタと言うことでしょうか ファイルポインタです ...続きを読む
leaz024氏がご指摘の通りです
STREAM=(FILE *)は間違いです
ただ私がCを勉強している時に読んだ本では
STREAM=(FILE *)と置き換えて読むと
すんなり理解できたもので・・・つい
ごめんなさい・・・
あと補足すると宣言したので
恐縮ですが補足させていただきます
> (FILE *)と言うことはファイルポインタと言うことでしょうか
ファイルポインタです
もっと精密にいうと FILE 型の変数へのポインタです
FILE *fp=fopen("fname","rt"); とした時の
fpの事を言っています
お礼コメント
saruno

お礼率 27% (43/159)

どうもありがとうございました。
やっと理解することができました。
投稿日時 - 2001-07-12 11:46:53
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ