MMAPに関するドキュメントを調べていたところ here を使用して実装しました this
その実装について、いくつか疑問があります。
MMAPはファイルのマッピングを提供し、物理メモリ内のその場所のポインターを返しますか、それともマッピングテーブルのアドレスを返しますか?そして、そのファイルにもスペースを割り当ててロックしますか?
ファイルがメモリ内のその場所に格納されたら、munmapが呼び出されるまでファイルはそのまま残りますか?
ファイルはメモリに移動されますか、それともリダイレクトとして機能する単なるマッピングテーブルであり、ファイルは実際には仮想メモリ(ディスク)にありますか?
メモリに移動したと仮定すると、他のプロセスがアドレスを持っている場合、そのスペースにアクセスしてデータを読み取ることができますか?
順番に答える:
MAP_SHARED
フラグを使用する必要があります。Mmap()はファイルに対して機能するだけでなく、次のような他のことも実行できることに注意してください。