0

私は Doom 3 SDK コード、特にファイル システムの実装を調べてきました。

システムは (少なくとも私がアクセスできるコードでは) 'idFile' オブジェクトを渡すことで機能し、このクラスが読み取りメソッド書き込みメソッドを提供し、FILE* メンバーを維持していることに気付きました。

これは、読み取りおよび書き込みアクセスで FILE* が「開かれる」、Read() と Write() の呼び出しの間にファイルが閉じられ、(適切なアクセスで) 再度開かれることを示唆しています。
この音は正しいですか、それとも単純化しすぎていますか?
これが当てはまらない場合 (速度などの理由で、そうではないのではないかと疑っている部分もあります)、このエレガントなインターフェイスを実現する方法について何か提案はありますか?

私はC++とstdioの両方にかなり慣れていないことを覚えておいてください(iDが好きだと確信しています)。

4

2 に答える 2

1

読み書きモードで FILE* を開くことができます。

その場合、読み取りと書き込みを切り替えるときに、既知の場所にフラッシュしてシークする必要がありますが、ファイルを再度開く必要はありません。

于 2009-11-25T14:38:17.437 に答える
0

Doom コードを見たことがない場合 (オブジェクトを作成するときにモードを指定できると思います)、 を使用freopen()して、最初にファイルを閉じずに (必要に応じて別のモードで) ファイルを再度開くことができます。

于 2009-11-25T14:30:43.880 に答える