管道通信.ppt.pptVIP

  • 6
  • 0
  • 约3.46千字
  • 约 20页
  • 2016-12-03 发布于海南
  • 举报
管道通信.ppt

单击此处编辑母版标题样式 Linux进程间通信 利用管道进行通讯 主要内容 传统进程通信 信号通信 管道通信 System V IPC进程通信 消息队列 共享主存 信号量 Socket网络进程通信 管道分为无名管道和有名管道 举例 ls –l|more ps –ef|grep ntp 无名管道 ? 它只能用于具有亲缘关系的进程之间的通信(也就是父子进程或者兄弟进程之间)。 ? 它是一个半双工的通信模式,具有固定的读端和写端。 ? 管道也可以看成是一种特殊的文件,对于它的读写也可以使用普通的read()和write()等函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内核的内存空间中。 管道的创建 和关闭 创建管道可以通过调用pipe()来实现。 管道是基于文件描述符的通信方式,当一个管道建立时,它会创建两个文件描述符fd[0]和fd[1],其中fd[0]约定用于读管道,而fd[1]约定用于写管道,这样就构成了一个半双工的通道。 管道关闭时只需使用普通的close()函数逐个关闭各个文件描述符。 父子进程之间的管道通信举例 父子进程分别拥有自己的读写通道,为了实现父子进程之间的读写,只需把无关的读端或写端的文件描述符关闭即可。此时,父子进程之间就建立起了一条“子进程写入父进程读取”的通道。 #include unistd.h #include sy

文档评论(0)

1亿VIP精品文档

相关文档