文章目录
进程间通信简介(IPC)
进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。另外,系统空间是“公共场所”,各进程均可以访问,所以内核也可以提供这样的条件。此外,还有双方都可以访问的外设。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。因为这样的通信手段效率实在太低了,而人们对进程间通信的要求是要有一定的实时性。
Linux的进程间通信的方法有管道、消息队列、信号量、共享内存、套接口等。其中,管道又分为命名管道和无名管道。消息队列、信号量、共享内存统称为系统(POSIX和System V系统)IPC。管道、消息队列、信号量和共享内存用于本地进程间通信,而套接口用于远程进程间通信。下面进行简单介绍:
1、管道(Pipe)及命名管道(named pipe)