【Linux】Linux进程间通讯的主要方式

Linux进程间通讯的主要方式


主要方式有7种:

  1. 无名管道(pipe)
  2. 有名管道(FIFO)
  3. 信号(signal)
  4. 消息队列
  5. 共享内存
  6. 信号量
  7. 套接字(socket)

(一)管道

  1. 管道通讯是单向的,有固定的读端和写端。
  2. 数据被进程从管道读出后,在管道中该数据就不存在了。
  3. 当进程去读取空管道的时候,进程会阻塞。 4. 当进程往满管道写入数据时,进程会阻塞。
  4. 管道容量为64KB (#define PIPE_BUFFERS16 include/linux/pipe_fs_i.h)
  5. 无名管道只能用于父子进程,而有名管道可以是任意两个进程

(二)信号

使用场景:两个应用程序同时读写一个文件,需要使用信号进行互斥访问或者同步访问。


(三)消息队列

你可能感兴趣的:(【Linux】Linux进程间通讯的主要方式)