私は一種の基本的なキャッシュとして構造体の配列を作成しようとしています。mmapへのインデックス?
mmapへのvoid *ポインタを指定すると、mmapはインデックスへのアフォーダンスを提供しますか?私は概念的にはmmapは単にメモリのブロックを提供していると思いますが、私はそれで何ができるのか少し混乱しています。私はそれをmallocと考えることはできますか?
void * mptr = mmap(NULL, 1024*1024, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
ありがとうございました。
むしろmmapと考える:mmapは、CPUがMMUを使って物理アドレスに変換する仮想メモリアドレスにデータをマップする。 http://en.wikipedia.org/wiki/Memory_management_unitあなたはmmapでたくさんのことをすることができます。仮想メモリアドレスを読み書きし、PROT_EXECを使用してその上でコードを実行します。匿名アドレスを作成したり、プロセス間で仮想アドレスをMAP_SHAREDなどと共有することができます。 – jarryd