mmap实现进程通信
时间: 2024-05-16 20:19:02 浏览: 94
***存储映射区来实现进程间的通信。存储映射区是指将一个文件或者匿名映射关联到进程的地址空间中,使得进程可以通过访问内存的方式来读写文件或者进行进程间的通信。
在父子进程之间,可以通过打开的文件和使用mmap建立的存储映射区来实现通信。父子进程的内存空间遵循读时共享、写时复制的原则,所以打开的文件和mmap建立的存储映射区在父子进程之间是一直共享的。可以通过修改存储映射区中的数据来进行进程间的通信。
另外,在非血缘关系的进程间,也可以通过mmap实现通信。使用宏MAP_ANON(仅linux独有)或者指定文件描述符为-1,可以创建匿名映射区,无需依赖文件。这种方式可以实现非血缘关系进程间的通信,但仅限于同一台机器上的进程。
综上所述,mmap可以通过建立存储映射区来实现进程间的通信,无论是父子进程还是非血缘关系的进程。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [利用 mmap 实现进程之间的通信](https://blog.csdn.net/qq_40843865/article/details/89442987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文