我目前正在通过 Unix 上的 mmap 试验 IPC。
到目前为止,我能够将一个 10MB 的稀疏文件映射到 RAM 中,并从两个独立的进程读取和写入它。惊人的 :)
现在,我目前正在将 mmap 返回的内存段的地址类型转换为 char*,因此我可以将它用作普通的旧 cstring。
现在,我真正的问题要深入一点。我在更高级别的编程(ruby、java)方面有很多经验,但从未在 C 或 ASM 中做过大型项目。
我想使用映射内存作为变量分配的地址空间。我不认为这是可能的,或者根本没有任何意义。我正在考虑某种类似于哈希映射的数据结构,它纯粹存在于共享段中。这将允许使用 IPC 进行一些有趣的实验,即使使用其他语言(如 ruby over FFI)也是如此。
现在,哈希的常规实现会经常使用 malloc 之类的东西。但这会从共享空间中分配内存。
我希望你能理解我的想法,虽然我的英语不是最好的!
提前谢谢雅各布