
No.5ベストアンサー
- 回答日時:
#1です
寝ぼけて適当に書いたので修正。
すぐ見つけることができたもので正確なものは英語版ですがこちらくらいかも。
Data buffer - Wikipedia (en.)
http://en.wikipedia.org/wiki/Data_buffer
一応簡単なものはこちらです。
バッファとは - e-Wrods
http://e-words.jp/w/E38390E38383E38395E382A1.html
「複数の機器やソフトウェアの間でデータをやり取りするときに、処理速度や転送速度の差を補うためにデータを一時的に保存しておく記憶装置や記憶領域のこと。」
が現在の基本定義です。処理速度・転送速度の差のための緩衝材的な意味です。
昔はソフトウェアとハードウェア間に使うデータでソフトウェア側がデータを受け取るか、整形して送信するときに使うメモリ領域が基本的にバッファでした。
マルチプロセッサ・マルチタスクの時代になってくると、ソフトウェア間の処理速度の違いを吸収するために使うメモリ領域にもバッファという言葉が使われるようになりました。ソフトウェア間で逐次(FIFO)処理されるデータのためのメモリ領域がこちらの使われ方の主戦場といったところでしょうか。
ソフトウェア間でただ一括転送されるデータならバッファという言葉は誤用ということになるのですが、よく誤用されます。
再度の回答ありがとうございます。
> ソフトウェア間でただ一括転送されるデータならバッファという言葉は誤用ということになるのですが、よく誤用されます。
これはありそうな気がします。
もしそうであれば、疑問が解決しそうです。
ありがとうございます。
No.4
- 回答日時:
1バイト読み込み命令を出しても、HDDなどは1バイトだけ読むことは出来ません。
500ばいと、1000バイト単位です。
そこで、500バイト読んで1バイト渡したら残りの499バイトはメモリー上にいますが、
これをバッファと呼びます。
また、書き出しも、1バイト書いた段階では出力せず、500バイトなりたまった時点で書いています。
書き出しファイルにはクローズが必須ですが、クローズしたら残りのデータが書き込まれます。
クローズを忘れたら最後のデータが含まれないファイルになってしまいます。
No.3
- 回答日時:
一般的に、Cのプログラミングで使うのは、システムあるいは、ランタイムライブラリとの値の受け渡しに、使う領域のことが多いでしょう。
たとえば、Cライブラリのfread,fwrite は、以下の宣言ですが、
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb,
FILE *stream);
これを使用するためには、呼び出し側(あなた)が、size*nmemdb のサイズの領域を確保して、ptrで指すようにして、これらのライブラリを呼ぶ必要があります。この時、確保された領域は、普通、バッファ領域といいます。
回答ありがとうございます。
> これを使用するためには、呼び出し側(あなた)が、size*nmemdb のサイズの領域を確保して、ptrで指すようにして、これらのライブラリを呼ぶ必要があります。この時、確保された領域は、普通、バッファ領域といいます。
これのことをバッファ領域と呼ぶことに違和感があるのです。
No.2
- 回答日時:
最終的な結果を得るまでの一時領域という事ではないでしょうか?
大きなデータを処理する場合、一つ一つを順番に見るより、まとめた大きな配列に放り込んで一気に処理した方が効率が上がる場合があります。
(バッファ領域が足りない(スワップアウトする)なら、効率が下がるかもしれませんが。)
また、逐一処理の場合でも、先に来たものから順に処理しなければならない(FIFO)場合、バッファ領域にためる、という事もあります。
(これはQueueと言った方が適切かもしれません。)
回答ありがとうございます。
> 最終的な結果を得るまでの一時領域という事ではないでしょうか?
そういう場合もあるかもしれません。
ただ、関数の引数でバッファと呼ばれるものがあるとなんか変な気もしますね。。。
No.1
- 回答日時:
基本的には外部記憶装置上の情報をより応答速度の速い記憶装置にコピーしたとき、コピー後応答速度の速い記憶装置側の情報をバッファと呼びます。
緩衝材的に有用な効果があると言う意味で使われ始めたのだと思います。でもコピーした複製になんでもかんでもバッファと付ける人は多いですよね。
回答ありがとうございます。
> 基本的には外部記憶装置上の情報をより応答速度の速い記憶装置にコピーしたとき、コピー後応答速度の速い記憶装置側の情報をバッファと呼びます。
そうですね。
これのことをバッファというものだと思っていましたが、
> でもコピーした複製になんでもかんでもバッファと付ける人は多いですよね。
こんなこともあるのですね。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
fgetsなどのときのstdinのバッファを消すには?
C言語・C++・C#
-
C言語のポインターに関する警告
C言語・C++・C#
-
関数から配列を返すには?
C言語・C++・C#
-
-
4
C言語 配列の長さの上限
C言語・C++・C#
-
5
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
6
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
7
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
8
C言語 バッファについて。
C言語・C++・C#
-
9
DWORDの実際の型は何でしょうか
C言語・C++・C#
-
10
数字以外が入力されたらエラー文を出したい。
C言語・C++・C#
-
11
C言語のintとcharの違いってなんですか?単にメモリ領域が違うだけですか?
C言語・C++・C#
-
12
visual studio でインデントを自動的に揃えるショートカットキー
その他(プログラミング・Web制作)
-
13
C言語初心者の質問失礼します。
C言語・C++・C#
-
14
C言語での引数の省略方法
C言語・C++・C#
-
15
Run-Time Check Failure #3というエラーが出ます。
C言語・C++・C#
-
16
char*を初期化したいのですが
C言語・C++・C#
-
17
テキストファイルから文字列を読み込んで二次元配列に格納するには
C言語・C++・C#
-
18
C言語で構造体のメンバを簡単に出力する方法ありますか?
C言語・C++・C#
-
19
0xffffとは?
C言語・C++・C#
-
20
c言語のポインタへの文字列入力についてです。
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッファとは何ですか
-
エクセルVBA 2千万行のCSVファ...
-
ページ読み込み時に自動的にsub...
-
Microsoft VBAで2GBを超えるフ...
-
【Teraterm】filewritelnについて
-
リストビュー ⇔ 別ファイル構...
-
EXCEL VBAでテキストファイルの...
-
エラー:ストリームの終わりを...
-
MacからWinにファイルを添付す...
-
入力ファイルをバイナリにする利点
-
EOF
-
FTPでエクセルをPUTするとファ...
-
C#(VB.Net)でPhotoshopデータを...
-
バイナリのセーブデータを作るのに
-
ASPにおけるバイナリデータの扱...
-
ファイル(データ)のコピー
-
Javaでのエンディアン変換
-
EXCEL VBAで、バイナリデータの...
-
【python】Excelファイルを読み...
-
iアプリのスクラッチパッドにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッファとは何ですか
-
Microsoft VBAで2GBを超えるフ...
-
エラー:ストリームの終わりを...
-
EXCEL VBAでテキストファイルの...
-
エクセルVBA 2千万行のCSVファ...
-
EXCEL VBAで、バイナリデータの...
-
VBA バイナリ―から文字列にす...
-
ページ読み込み時に自動的にsub...
-
【python】Excelファイルを読み...
-
EOF
-
テキストデータをSQLServerに取...
-
PHPのfgetcsvの処理容量について
-
なぜデータの整合性を確認する...
-
【MFC】CFileでSeekした位置か...
-
C++ Builderにおける画像データ...
-
入力ファイルをバイナリにする利点
-
バイナリファイルの検索について
-
バイナリーデータの一部データ...
-
htmlのデータをwebページみたい...
-
Javaでのエンディアン変換
おすすめ情報