本文主要是介绍[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 Overflowhttps://stackoverflow.com/questions/15114233/linux-is-it-possible-to-share-code-between-processes
这篇关于[common c/c++] 使用 posix 共享内存 和 mmap 实现 inter process function call的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!