c语言管道的用法.docxVIP

  • 29
  • 0
  • 约1.92千字
  • 约 5页
  • 2021-01-11 发布于天津
  • 举报
第二章管道 什么是管道 UNIX系统在OS的发展上,最重要的贡献之一便是该系统首创了管道 (pipe )。 这也是UNIX系统的一大特色。 所谓管道,是指能够连接一个写进程和一个读进程的、并允许它们以生产者 —消费者方式进行通信的一个共享文件,又称为 pipe文件。由写进程从管道的 写入端(句柄1)将数据写入管道,而读进程则从管道的读出端(句柄 0)读出 数据。 句柄fd[0] 句柄fd[0] 二、管道的类型: 有名管道 一个可以在文件系统中长期存在的、具有路径名的文件。用系统调用mknod() 建立。它克服无名管道使用上的局限性,可让更多的进程也能利用管道进行通信。 因而其它进程可以知道它的存在, 并能利用路径名来访问该文件。对有名管道的 访问方式与访问其他文件一样,需先用 open()打开。 无名管道 一个临时文件。利用pipe()建立起来的无名文件(无路径名)。只用该系统 调用所返回的文件描述符来标识该文件,故只有调用 pipe()的进程及其子孙进 程才能识别此文件描述符,才能利用该文件(管道)进行通信。当这些进程不再 使用此管道时,核心收回其索引结点。二种管道的读写方式是相同的, 本文只讲 无名管道。 pipe文件的建立 分配磁盘和内存索引结点、为读进程分配文件表项、为写进程分配文件表项、 分配用户文件描述符。 读/写进程互斥 内核为地址设置一个读指针和一个写指针,按先

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档