linux/unix下多进程间的通信
进程:进程是计算机运行的基本单位,利用多进程可以实现系统的多任务;但是,在多进程的任务中,进程之间的通信是比较麻烦的,因为,进程之间使用的是不同的进程空间,所以,编写多进程的系统,首先要决解进程之间的通信。 linux/unix下的进程间的通信主要分为两大类: 1、基于文件的IPC; 2、基于内存的IPC;; 基于文件的IPC又可以分为以下几类:基于普通文件的IPC、基于管道文件的IPC、基于socket文件的IPC。基于内存的IPC包括:基于共享内存的IPC,基于共享队列的IPC,基于信号量的IPC。 普通文件的IPC:使用普通文件的IPC是决解进程间通信的最基本方式,进程访问和操作普通文件;但是,基于普通文件IPC的一个主要技术问题是,一个进程改变了该文件,但是其他无法感知到文件的变化,为决解这个问题,可以使用一个特殊的文件:管道文件。 基于管道文件的IPC:管道是进程间通信的主要手段之一。管道文件实际上是 一个只存在于内存中的文件,对管道的操作实际是对两个文件的操作,分别表示对管道文件的读和写,根据管道的创建方式,管道文件可以分为普通管道和匿名管道;但是,匿名管道只能使用在父子进程之间。 基于socket的IPC:基于socket的IPC主要使用在网络编程之中,是一种比较重要的文件通信方式。基于文件的IPC主要分为两种模型:对等模型和C/S模型,对等模型主要用于udp编程