ストリームの制御
fopen は FILE 型のオブジェクトのアドレスを返します。 いくつかのライブラリ関数の引数 stream としてこのアドレスを使用し、開かれたファイルに対してさまざまな操作を実行します。 バイト ストリームについては、fgetc を呼び出して各文字を読み取るかのようにすべての入力が処理され、fputc を呼び出して各文字を書き込むかのようにすべての出力が処理されます。 ワイド ストリームについては、fgetwc を呼び出して各文字を読み取るかのようにすべての入力が処理され、fputwc を呼び出して各文字を書き込むかのようにすべての出力が処理されます。
fclose を呼び出すとファイルを閉じることができ、そのあと FILE オブジェクトのアドレスは無効になります。
FILE オブジェクトは次のようなストリームの状態を格納します。
関数が読み取りまたは書き込みのエラーを検出すると 0 以外に設定されるエラー インジケーター。
関数が読み取り中にファイルの終端を検出すると 0 以外に設定される EOF インジケーター。
ストリーム内で次に読み取るまたは書き込むバイトを指定するファイル位置インジケーター (ファイルが位置決め要求をサポートしている場合)。
ストリームで読み取りまたは書き込み (あるいはその両方) を承認するかどうか、ストリームが非バインド、バイト指向、ワイド指向のいずれであるかを指定するストリームの状態。
一部がアセンブルされた、または生成済みである汎用マルチバイト文字の状態、およびファイル内のバイト シーケンスのシフト状態を記憶する変換の状態。
ライブラリ関数がストリームの読み取りまたは書き込みのパフォーマンス改善に使用できる配列オブジェクトのアドレスおよびサイズを指定するファイル バッファー。
FILE オブジェクト、またはそのオブジェクトと使用するために指定したファイル バッファーに格納されている値は変更しないでください。 FILE オブジェクトをコピーすること、およびそのコピーのアドレスをライブラリ関数への引数 stream として移植して使用することはできません。