現在、Unix で mmap を介して IPC を試しています。
これまでのところ、10MB のスパース ファイルを RAM にマップし、2 つの別々のプロセスから読み取りと書き込みを行うことができます。素晴らしい :)
今、私は現在、mmap によって返されたメモリ セグメントのアドレスを char* に型キャストしているので、それを単純な古い cstring として使用できます。
さて、私の本当の質問はもう少し掘り下げます。高レベルのプログラミング (ruby、java) の経験はかなりありますが、C や ASM で大規模なプロジェクトを行ったことはありません。
マップされたメモリを変数割り当てのアドレス空間として使用したい。これが可能かどうか、またはまったく意味がないかどうかはわかりません。純粋に共有セグメントに存在する、ある種のハッシュマップのようなデータ構造を考えています。これにより、Ruby over FFI などの他の言語を使用した場合でも、IPC を使用した興味深い実験が可能になります。
さて、ハッシュの通常の実装では、malloc のようなものをかなり頻繁に使用します。ただし、これにより、共有スペースからメモリが割り当てられます。
私の英語は最高ではありませんが、私の考えを理解していただければ幸いです。
事前にありがとうヤコブ