代码之家  ›  专栏  ›  技术社区  ›  Adam Naylor

实现文件对象(C++)

  •  0
  • Adam Naylor  · 技术社区  · 16 年前

    我一直在研究doom 3 sdk代码,特别是它们的文件系统实现。

    系统通过传递一个“idfile”对象来工作(我至少可以访问代码),我注意到这个类提供了读取 和 编写方法以及维护文件*成员。

    这对我来说意味着文件*是以读写权限“打开”的 或 在对read()和write()的调用之间,文件被关闭并重新打开(具有适当的访问权限)。
    这听起来是正确的还是我过度简化了它?
    如果不是这样的话(我的哪一部分怀疑不是-由于速度等原因),有人对如何实现这个优雅的界面有什么建议吗?

    请记住,我对C++和STDIO都是相当新的(我确信我是赞成的)。

    2 回复  |  直到 16 年前
        1
  •  1
  •   pjc50    16 年前

    您可以以读写模式打开文件*。

    如果这样做,在读写之间切换时应该刷新并搜索到一个已知的位置,但不必重新打开文件。

        2
  •  0
  •   gnud    16 年前

    不用看厄运代码(我猜你可以在创建对象时指定一个模式),你可以使用 freopen() 在不关闭文件的情况下重新打开文件(如果需要,可以使用其他模式)。

    推荐文章