管道的理解
首先父进程在创建子进程之前打开的文件,父子可以操作同一个文件,
这块难理解的是父子进程如果是在fork之后打开的文件,而且是相同名字的文件,那么在磁盘上是怎么存储的呢
利用pipe函数,会创建一个管道文件,但是这个文件有俩个文件描述符,所以要在fork之前创建管道,这样可以实现共享,
管道的实质是内核缓冲区,内部使用环形队列实现,这个可以理解成管道文件和普通文件不一样,可以把内核缓冲区和管道文件等同
使用FIFO的时候
1.不能退出进程
2.不能在读之前提前关闭管道文件
这俩个问题究其根因是操作管道文件时感觉跟操作普通文件不一样,读写的时候俩端必须都打开文件