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 回答