跨内存附加。 如何从子进程获取远程地址到父进程

Linux内核版本3.2还具有称为跨内存附加的function。

这是它的链接。 在这方面我无法得到很多帮助。 http://man7.org/linux/man-pages/man2/process_vm_readv.2.html

在语法中,我们需要要写入或读取的远程内存的地址。 我的问题是如果我使用fork(),如何获取此远程内存的地址。

假设我使用跨内存附加从父进程向子进程发送一些内容。 如何从子进程将远程内存的地址发送到父进程?

系统调用process_vm_readvprocess_vm_writev用于进程之间的快速数据传输。 它们应该被用于除了一些传统的进程间通信方式之外。

例如,您可以使用常规管道或fifo在您的进程之间传输所需的地址。 然后,您可以使用这些地址来建立更快的process_vm_通信。 在分叉进程之间传递内容的最简单方法应该是pipe()函数( man 2 pipe有一个很好的使用示例)。 当然还有很多其他方法可以做,比如使用套接字或消息。 您甚至可以将地址写入文件,让其他进程读取它。