年轻人的努力

导航

管道的理解

首先父进程在创建子进程之前打开的文件,父子可以操作同一个文件,

  这块难理解的是父子进程如果是在fork之后打开的文件,而且是相同名字的文件,那么在磁盘上是怎么存储的呢

 

利用pipe函数,会创建一个管道文件,但是这个文件有俩个文件描述符,所以要在fork之前创建管道,这样可以实现共享,

管道的实质是内核缓冲区,内部使用环形队列实现,这个可以理解成管道文件和普通文件不一样,可以把内核缓冲区和管道文件等同

 

使用FIFO的时候

  1.不能退出进程

  2.不能在读之前提前关闭管道文件

 

这俩个问题究其根因是操作管道文件时感觉跟操作普通文件不一样,读写的时候俩端必须都打开文件

 

posted on 2021-04-10 12:38  年轻人的努力  阅读(70)  评论(0编辑  收藏  举报