【发布时间】:2014-08-17 13:09:21
【问题描述】:
我有一个旧的 C 库,它接受一个文件,处理文件有效负载并将处理后的有效负载写入输出文件。库中的函数与 FILE 紧密耦合,即它将 FILE 句柄传递给函数,函数执行文件 IO 以检索必要的数据。
我想修改这个库,使其可以在内存数据中使用(无文件 IO)。即传递一个二进制数组并返回二进制数组。
我有两个解决方案
- 实现一个 InMemory File 模块(将所有操作植入为 C 文件)并使用 typedef 或 #define 用新实现覆盖默认文件操作
- 将二进制数组传递给库的所有函数,并从中检索必要的数据。
哪个更好或任何其他更好的方法来解决问题
【问题讨论】:
-
这两种方法都可以正常工作。对我来说,我会采用第一种方法,因为它可能会更优雅。
-
不确定,但也许这会对您有所帮助。 stackoverflow.com/questions/16815785/…
-
你为什么要这样做?任何现代操作系统都已经虚拟化了文件访问。通过将文件内容的 RAM 使用量加倍,您可以使程序 变慢。
-
感谢您的回复,我会试试这个。我出于某些安全原因进行此更改,而不是出于性能考虑。
标签: c++ c file-io static-libraries