考虑下面的函数:
int Func(char* filename);
int Func(FILE* filepointer);
这两个做同样的事情,从给定的文件中读取大量数据(通过名称或指针),分析他的结果,并返回它。 我想用很多不同的数据调用这个函数。因此我应该将数据写入文件,然后将新文件名传递给 Func。但是数据很大,硬读写很慢。实际上分析时间比 I/O 少得多。
我可以通过任何方式一直摆脱保存/加载数据吗? 例如通过制作一个指向内存中某处的 FILE* 指针?
更新:显然我没有Func的源代码!这是一个 DLL 调用。
最佳答案
你可以使用 memory-mapped文件技术或类似 boost::iostreams 的东西带有自定义内存接收器/源。
实际上,第二种变体要灵活得多,但有时根本不需要所有的灵 active 和多功能性。
关于c++ - 操作内存中的数据而不是文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3219897/