1 Linux进程间通信方式

1.1 继承早期unix进程间通讯方式

1、无名管道(pipe);
2、有名管道(fifo);
3、信号(signal)。

1.2 System V IPC( Inter-Process Communication 进程间通信)

1、共享内存(share memory);
2、消息队列(message queue);
3、信号灯集(semaphore set)。

以上六种通讯方式用于本地进程间通讯。

1.3 套接字(socket)

套接字进程间通讯方式可用于本地,也可用于网络,但是一般是用于网络。

2 无名管道(pipe)

Linux进程通信

2.1 无名管道的特点

1、只能用于具有亲缘关系的进程之间的通讯。亲缘关系的进程:父子进程、兄弟进程、祖孙进程。
2、(一个无名管道)单工的通信模式,具有固定的读端和写端。要想实现双工,就得创建两个无名管道。
3、无名管道创建时会返回两个文件描述符,分别用于读管道和写管道。

2.2 无名管道的创建

Linux进程通信
注:EOF的值为-1。
Linux进程通信
注:管道内的数据是存在内存中的,只要被其它程序读一次,数据就消失了。

2.3 无名管道(有名管道)的读写特性

2.3.1 读特性

Linux进程通信
Linux进程通信

2.3.2 写特性

Linux进程通信
Linux进程通信
管道断裂指的是程序异常结束,也就是被信号结束。

相关文章:

  • 2021-08-22
  • 2021-05-02
  • 2021-06-07
  • 2021-12-11
  • 2022-01-11
  • 2021-12-21
猜你喜欢
  • 2021-11-22
  • 2021-11-11
  • 2021-08-16
  • 2022-12-23
  • 2021-10-10
  • 2022-12-23
相关资源
相似解决方案