1. 程式人生 > >(轉)Linux下內存映射文件的用法簡介

(轉)Linux下內存映射文件的用法簡介

target 共享 文件 知識 i/o 共享數據 log 需要 使用

簡介:

內存映射文件與虛擬內存有些類似,通過內存映射文件可以保留一個地址空間的區域,同時將物理存儲器提交給此區域,只是內存文件映射的物理存儲器來自一個已經存在於磁盤上的文件,而非系統的頁文件,而且在對該文件進行操作之前必須首先對文件進行映射,就如同將整個文件從磁盤加載到內存。由此可以看出,使用內存映射文件處理存儲於磁盤上的文件時,將不必再對文件執行I/O操作(虛擬內存需要從磁盤加在到物理內存中)這意味著在對文件進行處理時將不必再為文件申請並分配緩存,所有的文件緩存操作均由系統直接管理,由於取消了將文件數據加載到內存、數據從內存到文件的回寫以及釋放內存塊等步驟,使得內存映射文件在處理大數據量的文件時能起到相當重要的作用。另外,實際工程中的系統往往需要在多個進程之間共享數據,如果數據量小,處理方法是靈活多變的,如果共享數據容量巨大,那麽就需要借助於內存映射文件來進行。實際上,內存映射文件正是解決本地多個進程間數據共享的最有效方法。

在網上找了一些代碼,自己加工之後在Linux下編譯通過,可以運行實現相應功能。

轉自:http://blog.csdn.net/yasaken/article/details/7229076

(轉)Linux下內存映射文件的用法簡介