ファイルとストリーム

更新 : 2007 年 11 月

プログラムは、ファイルの読み込み、書き込みを通じてターゲット環境と情報の伝達をします。ファイルには、次の種類があります。

  • 何度も読み書きできるデータセット。

  • パイプラインのようにプログラムによって生成されるバイトのストリーム。

  • 周辺機器との間でやり取りされるバイトのストリーム。

最後の 2 つは、双方向ファイルです。通常、ファイルはプログラムと対話するための主要な手段です。どの種類のファイルを操作する場合でも、基本的な方法としてライブラリ関数を呼び出します。ほとんどのライブラリ関数は、STDIO.H という標準ヘッダーをインクルードすることによって宣言されます。

ファイルを操作するには、あらかじめファイルを開いておく必要があります。ファイルを開くと、ストリームに関連付けられます。ストリームは、標準 C ライブラリ内のデータ構造体であり、各種のファイル間に存在する差異を吸収する役割を果たします。ライブラリは、各ストリームの状態を FILE 型のオブジェクトとして保持します。

ターゲット環境では、プログラムの起動前に 3 つのファイルが開かれます。ファイルを開くには、2 つの引数を使用して fopen、_wfopen ライブラリ関数を呼び出します (fopen 関数は使用されなくなったので、代わりに fopen_s、_wfopen_s を使用します)。最初の引数は、ファイル名です。2 番目の引数は、C 文字列であり、次の内容を指定します。

  • データをファイルから読み取る、ファイルに書き込む、読み書きの両方を行うのいずれかを指定します。

  • ファイルの新しい内容を生成する (ファイルが存在していない場合は作成する)、既存の内容を維持するかどうかを指定します。

  • 書き込みによってファイルの既存の内容を変更するのか、ファイルの最後に単にバイトを付加するのかどうかを指定します。

  • テキスト ストリームとバイナリ ストリームのどちらを操作するのかを指定します。

ファイルが正常に開かれたら、バイト指向のストリーム (バイト ストリーム) とワイド指向のストリーム (ワイド ストリーム) のどちらにするかを決めることができます。最初、ストリームはバインドされていません。ストリームで操作するために呼び出された関数に応じて、そのストリームがバイト指向またはワイド指向になります。一度確定されると、fclose または freopen への呼び出しによって閉じられるまで、ストリームの指向は変化しません。

© 1989-2001 by P.J. Plauger and Jim Brodie. All Rights Reserved.

参照

参照

テキスト ストリームとバイナリ ストリーム

バイト ストリームとワイド ストリーム

ストリームの制御

ストリームの状態