【UNIX】进程间通信

来源:互联网 发布:日本皇室 知乎 编辑:程序博客网 时间:2024/04/28 11:45

Linux继承了AT&T和BSD以及早期的进程间的通信

一般常用的通信方式有:

1)传统的通信方式:无名管道,有名管道和信号。

2)对于SYS 5 的进程间通信采用了共享内存,消息队列和信号灯的形式。

3)BSD,对于一般网络间的通信采用来套接字的方式实现。


1)无名管道的机制以及创建


对于无名管道只是用于父子进程之间的通信,采用的是半双工的方式读写操作的,这里内核系统以及默认在无名管道了fd[0]是管道的读端fd[1]是管道的写端

对于管道可以看成是一种特殊的文件,管道是基于特殊的文件描述符的通信方式,对于他的读写尅使用read和write函数来实现。


1)对于管道的创建以及读写函数,如下:


2)管道的读写应该注意的:

①当管道中午数据写入时,读端会一直处于阻塞状态,

②向管道写出具的时候,Linux不会保持院子特性,若果管道中有闲着空间时,写进程会试图向管道写入数据,如果读进程不读走管道缓冲区的数据,那么写操作会一直阻塞

⑶只有读端存在时,写数据才有意义




0 0