次のコマンドを使用してファイルを開いた場合:
FILE *f1=fopen("test.dat","a+");
マニュアルページには次のように書かれています。
a +
読み取りと追加(ファイルの終わりへの書き込み)のために開きます。ファイルが存在しない場合は作成されます。読み取り用の最初のファイル位置はファイルの先頭ですが、出力は常にファイルの末尾に追加されます。
ではf1
、2つの別々のオフセットポインタがあります。1つは読み取り用で、もう1つは書き込み用ですか。
次のコマンドを使用してファイルを開いた場合:
FILE *f1=fopen("test.dat","a+");
マニュアルページには次のように書かれています。
a +
読み取りと追加(ファイルの終わりへの書き込み)のために開きます。ファイルが存在しない場合は作成されます。読み取り用の最初のファイル位置はファイルの先頭ですが、出力は常にファイルの末尾に追加されます。
ではf1
、2つの別々のオフセットポインタがあります。1つは読み取り用で、もう1つは書き込み用ですか。
いいえ。
最初はファイルの先頭にあるポインタが1つだけありますが、書き込み操作が試行されると、ファイルの末尾に移動されます。読み取り用にファイル内の任意の場所を使用して再配置できfseek
ますrewind
が、書き込み操作によってファイルの最後に戻ります。
いいえ、ポインタは1つだけです。
間に呼び出しを行わずに、読み取り操作と書き込み操作を混在させることはできません。一部の実装では希望どおりに機能する場合がありますが、これに依存するプログラムの動作は未定義です。したがって、2つのポジションを持つという質問は無意味です。FILE
fseek