Tom*_*omM 2 c++ linux logging boost file
我需要使用循环文件来保存磁盘上的大量动态数据(一次写入,可能永远不会读取).
为了更清楚,我想将文件视为循环缓冲区 - 即写入缓冲区将转到文件,读取将是文件读取.具体来说,我正在做日志.
我想知道boost是否具有我可以使用的任何功能(理想情况下是循环文件).
我看到在boost中有一个循环缓冲区,但我不能将它与文件一起用作某种后端.我甚至考虑过mmap()
将文件放入内存(如果我使用大小超过4GB的日志,那将不是一个好的解决方案),并将映射的块从Allocator
我将传递给缓冲区的块返回.
这似乎是一个糟糕的方法,因为循环缓冲区文档说Allocator
它将用于任何内存分配(而不仅仅是缓冲区分配).
是否有其他功能的圆形文件,或其他一些方法来做到这一点?
好吧,我实际上意味着记录文件系统日志(即记录写入).我有一个我想要记录的磁盘(写入它),以便我可以做CDP.我需要记录所有写入和标记,以便我可以将磁盘回滚到之前的位置.
日志可能有很大的空间(容易超过10GB),所以我不知道mmap解决方案是否可行.
如何使用Boost的循环缓冲区+ Boost IPC的内存映射文件?IPC文档说明了它的可能性:http://www.boost.org/doc/libs/1_46_0/doc/html/interprocess/allocators_containers.html(参见最后一行).
归档时间: |
|
查看次数: |
1618 次 |
最近记录: |