如何使用自定义分配器打开 std::ofstream?
How to open a std::ofstream using a custom allocator?
我正在用 C++ 编写调试工具。该工具不允许使用 malloc 堆,因为这样做可能会改变正在调试的程序的行为。相反,调试工具有自己的堆,与 malloc 堆分开(我们称它为“调试器的堆”)。
我的调试工具大量使用 C++ STL 'Allocator' 参数,以确保我的所有数据结构都进入调试器的堆中。到目前为止,一切正常。
现在我需要将输出文件写入磁盘。我很确定打开 std::ofstream 会在堆上分配内存。我的意思是,文件缓冲区必须去某个地方。但是 std::ofstream 不接受 Allocator 参数。有没有办法打开输出文件,并将文件缓冲区放入“调试器堆”?
我正在用 C++ 编写调试工具。该工具不允许使用 malloc 堆,因为这样做可能会改变正在调试的程序的行为。相反,调试工具有自己的堆,与 malloc 堆分开(我们称它为“调试器的堆”)。
我的调试工具大量使用 C++ STL 'Allocator' 参数,以确保我的所有数据结构都进入调试器的堆中。到目前为止,一切正常。
现在我需要将输出文件写入磁盘。我很确定打开 std::ofstream 会在堆上分配内存。我的意思是,文件缓冲区必须去某个地方。但是 std::ofstream 不接受 Allocator 参数。有没有办法打开输出文件,并将文件缓冲区放入“调试器堆”?