boost是否支持循环文件?

Tom*_*omM 2 c++ linux logging boost file

我需要使用循环文件来保存磁盘上的大量动态数据(一次写入,可能永远不会读取).

为了更清楚,我想将文件视为循环缓冲区 - 即写入缓冲区将转到文件,读取将是文件读取.具体来说,我正在做日志.

我想知道boost是否具有我可以使用的任何功能(理想情况下是循环文件).

我看到在boost中有一个循环缓冲区,但我不能将它与文件一起用作某种后端.我甚至考虑过mmap()将文件放入内存(如果我使用大小超过4GB的日志,那将不是一个好的解决方案),并将映射的块从Allocator我将传递给缓冲区的块返回.
这似乎是一个糟糕的方法,因为循环缓冲区文档说Allocator它将用于任何内存分配(而不仅仅是缓冲区分配).

是否有其他功能的圆形文件,或其他一些方法来做到这一点?

好吧,我实际上意味着记录文件系统日志(即记录写入).我有一个我想要记录的磁盘(写入它),以便我可以做CDP.我需要记录所有写入和标记,以便我可以将磁盘回滚到之前的位置.
日志可能有很大的空间(容易超过10GB),所以我不知道mmap解决方案是否可行.

Pab*_*blo 6

如何使用Boost的循环缓冲区+ Boost IPC的内存映射文件?IPC文档说明了它的可能性:http://www.boost.org/doc/libs/1_46_0/doc/html/interprocess/allocators_containers.html(参见最后一行).