我有相關的處理文件,並將其映射(mmap
)以下問題:寫入文件和映射內存之間有什麼區別?
- 我們知道,如果我們創建了一個文件,並寫入該文件,然後要麼方面,我們都是寫入存儲器。那麼爲什麼使用
mmap
將該文件映射到內存然後寫入? - 如果是因爲我們使用
mmap
-PROT_NONE
,PROT_READ
,PROT_WRITE
來實現保護,那麼使用文件也可以實現相同的保護等級。O_RDONLY
,O_RDWR
等。那麼,爲什麼mmap
? - ,有什麼特別的優勢,我們得到的文件映射到內存中,然後使用它嗎?而不是隻創建一個文件並寫入它?
- 最後,假設我們
mmap
文件到內存中,如果我們寫的MMAP返回的內存位置,它同時也寫入該文件呢?
請幫我回復所有的查詢。
非常感謝。
*編輯:線程之間共享文件*
據我知道,如果我們兩個線程(不處理)之間共享文件,那麼它是明智的mmap
到內存中,然後使用它,而不是直接使用該文件。
但我們知道,使用文件手段,它肯定是在主內存中,然後再爲什麼線程需要被mmaped?
那麼我們收到的優勢是什麼? – kingsmasher1
@ kingsmasher1編輯我的回答 –
我已經添加了一個編輯,你能幫我一下嗎? – kingsmasher1