我有一個文本文件正在被一個程序併發寫入,並被另一個程序讀取。文件本身是一堆鍵 - 值對,其中每一對都在它自己的行上,並且鍵和值由空白分隔。我已經將文件映射到兩個程序的內存中(使用MAP_SHARED標誌),並且當新的用戶提供的鍵值對的關鍵字已經成功地將需要寫入該文件的程序非常有效地寫入到該程序在文件中不存在。覆蓋mmapped文件中間數據的有效方法
我現在正在努力的是,當用戶輸入新的鍵值對並且文件中已存在該鍵時,高效地覆蓋與鍵關聯的值。
當新值與原始值相同或更少時,我可以簡單地覆蓋映射地址處的值,我不必擔心重新映射和映射。然而,當新值大於先前值時,是否有一種有效的方法來處理這個問題?剛剛騰出5個數字鍵和10個數字的值 -
感謝
你不能那樣做。您可能要考慮使用適當的數據庫。 –
我很喜歡,但項目的約束更多的是練習,它是兩個程序同時讀寫一個文件,文件存儲鍵值對,一個程序可以添加/編輯這些鍵值對,值對,另一個程序可以簡單地檢索與文件中存在的鍵相關的值。本質上是一個生活在文件中的concurreny友好散列圖。 –
@AlexanderBolinsky Dude它的一個任務的地獄..我的意思是你想要做的是一個非常大的辯論在CS或數據庫世界。 – Minato