2012-04-03 134 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