2012-04-03 48 views
4

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

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

谢谢。

+0

你有没有考虑过使用JNI来桥接从Java到C++呢? – 2012-04-03 13:36:34

回答

2

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