【发布时间】:2013-12-15 18:12:38
【问题描述】:
最近在研究linux进程间通信。但是我在理解管道机制方面存在一些问题。
我知道管道是父进程创建的一对文件,然后父进程将文件描述符传递给其子进程,然后子进程可以对其进行操作。
但是既然子进程在fork()之后调用exec()时拥有了一个全新的虚拟内存,那么为什么父进程可以将它的信息传递给子进程呢?我有什么遗漏的吗?
【问题讨论】:
-
文件描述符指向内核中通用的文件数据结构,因此内核可以将同一个文件暴露给多个进程。
-
查看 www.aosabook.org (bash) 和 Jessi Storimer (jstorimer.com/blogs/workingwithcode/…)。不知道这是否会回答你的问题,但会给你一些见解。
标签: c++ c linux unix linux-kernel