ストリームとファイル

C の入出力システムでは、プログラムと実際のデバイスとのあいだに抽象的なレベルを設けている。これをストリームという。ストリームのおかげで、プログラムからは実際のデバイスにかかわらずほとんど同じように扱える。
これに対して、実際のデバイスをファイルと呼ぶ。この文脈ではいわゆる普通のファイルだけでなく、画面、キーボード、ポートなどを含んでいる。

ストリームには、テキストストリームとバイナリストリームがある。
テキストストリームは ASCII 文字を扱う。テキストストリームでは、何らかの文字変換が行われることがある。例えば、改行文字を出力する場合には大抵復帰改行に変換される。なので、ストリームに送られるデータとファイルに書き込まれるデータが一致するとは限らない。
一方、バイナリストリームはどんな形式のデータでも扱うことが出来、文字変換も行わない。ストリームに送られれデータとファイルに書き込まれるデータは一致する。

もうひとつ、現在位置(current possition)という概念がある。現在位置は次のファイルアクセスが起こる位置を示している。例えば、100バイトのファイルがあり、すでに半分読み込んでいるとすると、次のアクセスでは 50 バイトめ(51バイトめ?)であり、これが現在位置ということになる。

ふむ、まあ、何とかわかった。次はいよいよファイルアクセスだ。

カテゴリー: C パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください