答:在fork函数之后调用pipe函数就会在内核空间开辟区域,无名管道是给了当前进程两个文件描述符,但是这两个文件描述符只能在当前进程的用户空间开辟区域,所以如果是不相关的两个进程无法保证开辟的是同一块内核空间,所以无名管道不能用于没关系的进程间通信,而如果是当前进程fork出的子进程,子进程会完全拷贝父进程fork之前的所有虚拟内存空间,两个进程的文件描述符一样,这样就保证两个进程操作的是同一个无名管道,所以无名管道只能用于具有亲缘关系的进程间通信
为什么无名管道只能用于具有 亲缘关系 的进程间通信。
最新推荐文章于 2024-09-02 20:21:30 发布