1
我知道我們可以使用文件映射在兩個進程之間共享內容,但是這需要相同的文件映射對象。Windows CreateFileMapping:具有相同備份文件的不同文件映射對象
會發生什麼如果每個進程使用自己的文件句柄創建自己的文件映射對象,但每個文件句柄指向相同的文件?
感謝 昌
我知道我們可以使用文件映射在兩個進程之間共享內容,但是這需要相同的文件映射對象。Windows CreateFileMapping:具有相同備份文件的不同文件映射對象
會發生什麼如果每個進程使用自己的文件句柄創建自己的文件映射對象,但每個文件句柄指向相同的文件?
感謝 昌
從技術文檔:
創建文件映射對象實際上沒有地圖的視圖到進程的地址空間。 MapViewOfFile和MapViewOfFileEx函數將文件視圖映射到進程地址空間。
有一個重要的例外,從同一文件支持的任何文件映射對象派生的文件視圖在特定時間是連貫的或相同的。一致性保證了流程中的視圖和不同流程映射的視圖。
異常與遠程文件有關。儘管CreateFileMapping可以處理遠程文件,但它並不能保持一致。例如,如果兩臺計算機都將文件映射爲可寫,並且兩臺計算機都更改同一頁,則每臺計算機只能看到自己寫入頁面的內容。數據在磁盤上更新時,不會合並。
我猜*上次寫入的人會覆蓋先前寫入的內容。 – Asha 2012-04-12 05:48:37