[common c/c++] 使用 posix 共享内存 和 mmap 实现 inter process function call

正文:

mmap 可以映射某个文件的某块内存区域,因此可以通过 mmap 和 共享内存的方式将两个不同进程内的函数的所有二进制码映射到共享内存里,以实现跨进程的函数调用。

实际上,linux 动态库的动态链接正是通过mmap 把动态库文件 映射到当前进程的堆区域中实现的。

这个功能理论上只能调用单个函数,这个函数不能再调用其他函数,因为其他相关函数没有被map到共享到内存里,可行性和实用性有待考证。

参考:

c - Linux: is it possible to share code between processes? - Stack Overflowicon-default.png?t=N7T8https://stackoverflow.com/questions/15114233/linux-is-it-possible-to-share-code-between-processes

猜你喜欢

转载自blog.csdn.net/ykun089/article/details/134016190