2013-05-22 59 views
0

我正在研究當前爲單用戶的傳統C應用程序。我想修改它,以便它是多用戶。將單個用戶應用程序轉換爲多用戶應用程序

當前應用程序使用用戶權限將相關數據(針對當前用戶)加載到共享內存中。我想在共享內存中實現像結構這樣的字典,以便使用唯一的用戶密鑰來存儲相關數據 - 但是,由於所有用戶共享相同的數據,因此一個天真的字典結構將導致字典中的數據被複制,但只允許根據他們的角色/許可限制對數據的「觀點」。

有人可以建議一個數據結構thst提供了字典的'查找'行爲,但是避免了'天真'字典不可避免地導致的數據的重複性嗎?

注意:我的應用程序是用C語言編寫的,所以我不能使用類,我需要一個可以在C中實現並存儲在共享內存中的數據結構。

回答

0

爲其條目創建一個全局字典和用戶特定的標記。

+0

我可能在這裏失去了一些東西;我沒有看到全球字典方法如何避免重複數據問題 - 請您澄清一下嗎?謝謝。 –

+0

@HomunculusReticulli:插入功能應該檢查要插入的數據是否已經在dic中。 – alk

+0

好的,但是引入了兩個'問題':** 1 **我需要實現一種機制來'重新加入'從字典中讀取數據** 2 **由於'重新連接數據'導致的性能開銷讀取。目前,該應用程序閃電般快,因爲它直接爲一個用戶設置共享內存和數據。我想保持該性能水平(儘可能接近) –

0

在Linux中,系統調用unshare用於實現多用戶支持。

相關問題