質問

次のコマンドを使用してファイルが開かれている場合:

FILE *f1=fopen("test.dat","a+");

Man Pageは読みます:

A+

読み取りと追加のために開いています(ファイルの終わりに書く)。ファイルは存在しない場合に作成されます。読み取りの最初のファイル位置はファイルの先頭にありますが、出力は常にファイルの最後に追加されます。

そうです f1 2つの個別のオフセットポインターがあります。1つは読み取り用、もう1つは書き込み用ですか?

役に立ちましたか?

解決

いいえ。

最初はファイルの開始時にあるポインターは1つだけですが 書き込み操作が試行されると、ファイルの最後に移動します. 。使用して再配置できます fseek また rewind 読み取りのためにファイルのどこにでもありますが、操作を書くことでファイルの最後に戻ります。

他のヒント

いいえ、ポインターは1つだけです。

あなたはできる 一度もない 読み取りと書き込み操作を混ぜます FILE 電話せずに fseek その間に。いくつかの実装で希望どおりに機能する場合がありますが、これに依存するプログラムは未定義の動作を持っています。したがって、2つの位置を持つという質問は無意味です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top