2012-09-26 77 views
0

嗨,我已經瞭解到,如果我有一個共享內存(C++)類對象,那麼添加成員變量是poiners是沒有意義的,如果這個指針將被用於不相關進程訪問相同的東西。但是如何在共享內存中創建鏈表呢?假設一個shm對象指向另一個shm對象。這是不可能的,因爲任何不相關的過程都可以在shm內部的鏈中迭代。如果有可能,那麼如何?如何將shm對象指向另一個shm對象

回答

0

好的,我發現你可以通過例如知道所涉及結構的確切大小來測量SHM中兩個結構之間的距離。所以,如果你把它在任意距離最好頁對齊的,你可以添加的距離由MMAP返回開始指針和將指向第二,第三等 例如:

items[i].start = (void*)((char*)items[0].start + calcoffset) 
相關問題