IPC之---管道
进程间通信———管道 什么是进程间通信 进程间通信(IPC,Interprocess communication)是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息。这使得一个程序能够在同一时间里处理许多用户的要求。因为即使只有一个用户发出要求,也可能导致一个操作系统中多个进程的运行,进程之间必须互相通话。举个例子来说,也就是说用一些方法让两个本来不能见面的人见面。IPC接口就提供了这种可能性。那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。另外,系统空间是“公共场所”,各进程均可以访问,所以内核也可以提供这样的条件。下面一副图来说明进程间的通信。 进程间通信的方法:主要包括管道, 系统IPC(包括消息队列,信号,共享存储), 套接字(SOCKET).(下面主要介绍管道,匿名管道和命名管道) 管道包括以下三种: <1>普通管道PIPE,特点就是: 1.单向通信。 2.只有在具有亲缘关系的进程间通信(父子,兄弟)。 3.具有同步机制。(写什么,读什么) 4.他是一种面向字节流的通信服务。 5.生命周期随进程(也就是说,当与之相关的进程退出时,管道内申请的空间不管有没有释放系统都会释放它;就是说只要进程退出了,管道也就随之退出。比如,在管道中申请了堆空间