我有一個結構,我想導出到一個文件,然後mmap()該文件。一個問題是,該結構有一個字符串的成員變量,我不知道如何mmap將處理。在這種情況下,所有這些字符串都是相同的大小,8個字符。我正在使用Windows,但我使用的是我在網上找到的mmap()函數,它應該複製Linux mmap()函數。如何將結構導出到文件,然後映射文件的內存?
的結構本身被定義爲:
struct testStruct
{
string testString;
unsigned int testInt;
unsigned int tsetArr[9];
};
是否有可能爲一個對象定義的sizeof()的返回值?
將映射包含結構數據的文件是可能的嗎?
我需要使用什麼代碼才能將結構導出到文件,然後進行mmap呢?
謝謝。如果所有字符串都具有相同數量的字符(8),那麼是否有可能在內存中映射一個字符串向量? – Tristan 2011-05-04 20:18:10
@Tristan:'std :: vector'和'std :: string'有相同的問題:它在堆上分配它的內容(並且如果增長需要可能會改變它的位置)。一個二維數組('char [N] [8]'爲一些編譯時常量'N')應該工作。 – 2011-05-04 21:05:37
再次感謝。在我將mmap的8個字符串文件讀入到二維數組之後,將這些N個項中的每一個作爲一個字符串訪問的最快方法是什麼?我將處理數十萬種物品,所以速度很重要。 – Tristan 2011-05-04 21:28:19