ストリームの制御

更新 : 2007 年 11 月

fopen は、FILE 型のオブジェクトのアドレスを返します。このアドレスを複数のライブラリ関数の引数 stream として使用し、開いているファイルにさまざまな操作を行うことができます。バイト ストリームの場合、すべての入力は fgetc を呼び出して各文字を読み込んだ場合と同じように実行されます。また、すべての出力は fputc を呼び出して各文字を書き込んだ場合と同じように実行されます。ワイド ストリームの場合、すべての入力は fgetwc を呼び出して各文字を読み込んだ場合と同じように実行されます。また、すべての出力は fputwc を呼び出して各文字を書き込んだ場合と同じように実行されます。

fclose を呼び出すと、ファイルを閉じることができます。ファイルを閉じると、FILE オブジェクトのアドレスは無効になります。

FILE オブジェクトは、次に示すストリームの状態を格納します。

  • エラー インジケータ。読み取りエラーまたは書き込みエラーを検出した関数によって、0 以外の値に設定されます。

  • EOF (End-Of-File) インジケータ。ファイルの読み込み中にファイルの終端を検出した関数によって、0 以外の値に設定されます。

  • ファイル位置インジケータ。位置指定要求をサポートするファイルの場合、ストリーム内の次に読み込まれるバイトまたは次に書き込まれるバイトを指定します。

  • ストリームの状態。ストリームが読み込みと書き込みの一方または両方を受け入れるかどうか、およびストリームが非バインド、バイト指向、またはワイド指向のいずれであるかを指定します。

  • 変換状態。アセンブル途中または生成途中の汎用マルチバイト文字の状態と、ファイル内のバイト シーケンスのシフト状態を記憶します。

  • ファイル バッファ。配列オブジェクトのアドレスおよびサイズを指定します。ライブラリ関数を使用して、ストリームに対する読み込みおよび書き込みのパフォーマンスを向上できます。

FILE オブジェクトに格納されている値、またはそのオブジェクト用に指定したファイル バッファに格納されている値は変更しないでください。FILE オブジェクトをコピーし、そのコピーのアドレスをライブラリ関数の stream 引数として使用することはできません。

参照

参照

ファイルとストリーム