用于非常大的10G缓冲区的c ++ FIFO实现

时间:2012-04-03 13:29:57

标签: c++ windows memory fifo

我需要实现10G环形缓冲区(FIFO)。我需要用C ++编写这个程序用于集成(必须与C ++ API集成)的原因,尽管我认为在Java中使用FileChannel类会更容易。我知道我需要使用内存映射文件,不知道如何在C ++中执行此操作。我想我将不得不使用缓冲区并将其重新映射到底层文件的不同部分?这样的事情。无论如何,如果有人有一些示例代码(非MFC),那就太好了。

我将在运行Windows 7 32位的32位硬件上实现此功能。

感谢。

1 个答案:

答案 0 :(得分:2)

创建可在Windows和UNIX上运行的内存映射文件的一种方法是使用Boost C ++库,请参阅here。此代码在大多数32位平台上处理大型文件(> 4 GB);见here